Linux:如何使用脚本委托(delegate)异国情调的命令行参数?

标签 linux bash command-line scripting arguments

我想编写一个包装器 bash 脚本,并将所有参数传递给一个被调用的程序。我非常确定,这可以正常工作:

#!/bin/sh
someProgam $@

但是当传递异国情调的参数(空的、未转义的、引号中的......)时,这会失败。

例如:没有包装器脚本,someProgram "1 2"3 产生参数
[1 2][3]
但是从脚本调用时,我得到了 [1][2][3]

大括号只是为了可视化。

注意:这是一个 Java 程序,被调用。不过我觉得没关系。

最佳答案

#!/bin/sh
someProgram "$@"

另见 bash docs on special parameters .

顺便说一句,"$@" 不是 bash 特有的。您可以依靠跨平台 sh 脚本中的 "$@" 来几乎在任何地方运行。

顺便说一句,如果这恰好是该脚本的最后一行,您可以通过将该行更改为类似的内容来为您的操作系统节省几个字节并在进程表中添加一个条目

exec someProgram "$@"

关于Linux:如何使用脚本委托(delegate)异国情调的命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1932964/

相关文章:

linux - Ubuntu 上的 SCALA_HOME 在哪里?

linux - ffmpeg 修复水印大小或百分比

linux - 打开终端窗口并在其中执行自定义命令?

gradle - 使用命令行告诉 gradle 下载所有源 jar

python - 如何使用 python 可靠地解析命令 zpool status 和 zpool list 的输出,然后将所有信息插入 mysql 数据库?

linux - 如何从 Linux 环境交叉编译适用于 MacOS 的 R 包?

macos - 在 Swift 中运行 shell 命令

bash - 删除所有以小写字符开头的行

bash - shell脚本没有在本地运行

linux - 消耗带宽