我有一个bash脚本。我想让此脚本在/ usr / local / bin中重新创建自己,而无需其他文件来执行此操作。
bash_a.sh:
ssh -t -t server-a.com "
cd /var/
irb
..etc
"
我在想些什么:
echo "
ssh -t -t server-a.com "
cd /var/
irb
..etc
"
" > /usr/local/bin/bash_a.sh
或这个:
cp bash_a.sh /usr/local/bin/bash_a.sh
ssh -t -t server-a.com "
cd /var/
irb
..etc
"
请为您的建议尝试单引号和双引号技巧:
echo '#!/bin/bash
ssh -t -t server-a.com "
cd /var/
irb
..etc
"
' > /usr/local/bin/bash_a.sh
chmod a+rx /usr/local/bin/bash_a.sh
在单引号内,shell处理数据不变。在双引号内,shell扩展了$ variables,反斜杠,反引号和所有其他内容。因此,通常在可能的地方使用单引号。
但是,在单引号内不能轻易使用单引号,而在单引号内则可以很容易地使用双引号。
在双引号内可以使用双引号,但是必须使用反斜杠将其转义。如此echo "abc\"def\""
打印abc"def"
。
在双引号内,您也可以使用单引号,但它们不会阻止所有扩展。如此echo "abc'def'"
打印abc'def'
。
您可以在单引号内使用单引号,但必须输入:echo 'abc'\''def'\''hij'
prints abc'def'hij
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句