当我在命令行上运行它时,它可以正常工作
awk 'BEGIN{FS=OFS=","}/^AAA/{$3="QQQ"}1' test.txt > newtest.txt
但是,当我尝试在SSH到远程服务器的bash脚本中运行此脚本时,它会因语法错误而失败,但是我看不到它在哪里失败。看起来它指向命令中的FS。
我正在执行以下操作:
sshpass -p "password" ssh [email protected] /bin/bash << EOF
echo password | sudo -u root -S awk 'BEGIN{FS=OFS=","}/^AAA/{$3="QQQ"}1' test.txt > newtest.txt
EOF
SSH连接正常,但是awk命令失败。任何想法如何解决这个问题?
谢谢
<<EOF
在未引用的Heredoc中。在这些内部,无论任何内部引号,都将执行所有参数扩展。
如果要$3
传递给您awk
而不用替换外壳中该扩展的值,则需要使用带引号的heredoc:,<<'EOF'
而不是<<EOF
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句