【发布时间】:2019-09-08 19:17:48
【问题描述】:
我正在尝试复制整个脚本,而不是脚本输出,而是将整个脚本作为文本行复制到名为 test.sh 的文件中。我正在使用另一个脚本来执行此操作,所以我没有使用 vi 之类的文本编辑器。
我不能使用 echo "" 或 echo '' 因为脚本字符串里面包含双引号和单引号。
我用过但失败的是:
echo "rm disktemp;./xpinfo -i|awk '{print $1}'|grep rhdisk|sed 's!/dev/r!!'>disktemp;for i in $(cat disktemp);do ./xpinfo -i|grep $i|sed 's!/dev/r!!'|awk '{print $6","$1'};done" > test.sh
有什么办法吗?
【问题讨论】:
-
您的尝试失败了,因为双引号字符串将进行参数扩展,并且
$1等被扩展为空。使用 echo + 单引号可能但很麻烦,您一定要关注 Anubis 的链接 -
试试 $'' ksh93 有(也可能是 bash)这个特性,所以可以嵌套引用。