将屏幕与ssh和remote gawk一起使用时的语法错误

问题描述

我需要在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 (将#修改为@)