【问题标题】:How can I preserve command line spaces in a linux application?如何在 linux 应用程序中保留命令行空间?
【发布时间】:2011-10-11 19:12:14
【问题描述】:

根据this question here,我正在使用如下所示的 shell 脚本在一些本地服务器上部署 linux 应用程序:

   #!/bin/sh
   export LD_LIBRARY_PATH=./libs:$LD_LIBRARY_PATH
   exec ./TheBinary $*

当我在没有这些包装器的情况下运行 TheBinary 时(但在修改了 LD_LIBRARY_PATH 之后,我想通过脚本部署后执行此操作),我可以使用双引号 (") 在命令行参数中保留空格。但是上面的脚本似乎可以将它们清理掉;如何修改此脚本以尊重用双引号括起来的命令行参数中的空格?

【问题讨论】:

  • 您是否同时引用了“$LD_LIBRARY_PATH”和“$*”?
  • 试图引用 "$*" 会使应用程序认为它只有一个命令行参数。
  • 哎呀,明白了...有关详细说明,请参阅tldp.org/LDP/abs/html/internalvariables.html#ARGLIST。 @sehe 说得对。

标签: linux command-line-arguments


【解决方案1】:
#!/bin/bash
export LD_LIBRARY_PATH=./libs:$LD_LIBRARY_PATH
exec ./TheBinary "$@"

我不知道 /bin/sh 是否支持该语法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 2018-03-16
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多