问题描述
我需要在bash脚本中运行以下命令。
该命令需要在GNU屏幕内运行,这样我才能看到进度。因此,该命令必须用引号引起来,但是由于这个原因,我在语法上遇到了问题,并且代码无法正常运行。
我在名为textfile.txt
的远程服务器中有一个文件。看起来像这样。
gawk命令本身运行正常。
test-server-name 1
test-server-name 2
test-server-name 3
...
test-server-name 23
test-server-name 24
...
我同时运行屏幕命令和ssh命令,后者运行gawk命令来修改文本文件中的一行,在这种情况下,它应查找test-server-name-1
并在旁边添加0
像这样
test-server-name 1 0
test-server-name 2
test-server-name 3
...
test-server-name 23
test-server-name 24
...
这就是我的脚本在本地服务器中的样子。
localhostname='test-server-name-1'
counter=1
function='textfile'
screen -dmS $counter "ssh -i ~/.ssh/ssh-key username@masteripaddress 'gawk -i inplace -v n='0' -v s='${localhostname}-${function}' '$1 == s { $2 = n } 1' /home/master/Documents/${function}.txt';exec bash;"
但是,当我运行它时,脚本会运行,并且在所附的屏幕上会出现此错误,
gawk: cmd. line:1: ==
gawk: cmd. line:1: ^ syntax error
我该如何解决?什么字符需要转义
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)