linux – 防止ssh破坏shell脚本参数

linux – 防止ssh破坏shell脚本参数,第1张

概述我有一个脚本,它本质上是在不同的机器上使用相同名称的可执行文件的包装器.为了举例,我将在这里包装printf.我当前的脚本如下所示: #!/bin/bashssh user@hostname.tld. printf "$@" 不幸的是,当其中一个参数包含空格时会中断,例如我希望以下命令给出相同的输出: ~$./wrap_printf "%s_%s" "hello world" "1"hello 我有一个脚本,它本质上是在不同的机器上使用相同名称的可执行文件的包装器.为了举例,我将在这里包装printf.我当前的脚本如下所示:
#!/bin/bashssh user@hostname.tld. printf "$@"

不幸的是,当其中一个参数包含空格时会中断,例如我希望以下命令给出相同的输出:

~$./wrap_printf "%s_%s" "hello world" "1"hello_world1_~$printf "%s_%s" "hello world" "1"hello world_1

当涉及(转义)换行符时,问题变得更加严重.我怎么能在这里正确地逃避我的论点?

解决方法
#!/bin/shQUOTE_ARGS=''for ARG in "$@"do  QUOTE_ARGS="${QUOTE_ARGS} '${ARG}'"donessh user@hostname.tld. "${QUOTE_ARGS}"

这适用于空间.如果参数具有嵌入的单引号,则它不起作用.

总结

以上是内存溢出为你收集整理的linux – 防止ssh破坏shell脚本参数全部内容,希望文章能够帮你解决linux – 防止ssh破坏shell脚本参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1048023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存