用bash写一个文件

时间:2010-04-20 10:54:49

标签: bash

我只需要写

"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}""

但我认为“双重包装”只适用于变量。

想法?

4 个答案:

答案 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}"'"'