我只需要写
"echo" t${count} = "$"t${count}"
到一个文本文件,包括所有的所以输出将是这样的:
echo " t1 = $t1"
“按照原样。我已经尝试过了:
count=1
saveIFS="$IFS"
IFS=$'\n'
array=($(<TEST.txt))
IFS="$saveIFS"
for i in "${array[@]}"
do
echo "echo" t${count} = "$"t${count}""
(( count++ ))
done >> long1.txt
这方面的变化如:
echo "echo" """"" t${count} = "$"t${count}""
但我认为“双重包装”只适用于变量。
想法?
答案 0 :(得分:9)
实际上没有包含变量的双引号,第一个引用开始,第二个引用结束引用的字符串。但是,您可以根据需要连接字符串,因此"$"t${count}""
实际上等同于"$"t${count}
,以引用的$ -sign开头,后跟't',后跟count-variable。
回到你的问题,得到一个“,你可以把它放在一个文字字符串中(用单引号括起来),就像echo '"my string"'
一样,注意虽然变量没有用文字字符串代替。或者你可以转义它,就像echo "\"my string\""
一样,它将字符串放在字符串中,并且不会终止它。
答案 1 :(得分:3)
echo "echo \"t${count} = $t${count}\""
答案 2 :(得分:1)
你需要逃避双引号(也是美元符号):
echo "\" t = \$t\""
答案 3 :(得分:1)
又一个引用变体(更多的是练习而不是解决方案):
# concatenate alternating single- & double-quoted blocks of substrings
count=1
echo 'echo "t'"${count}"' = $t'"${count}"'"'