我想知道是否有可能在 shell 脚本中访问完整的命令行调用。在我的脚本中,我需要进一步传递它。我发现有 $@ 和 $* 访问器,但它不会传递所有字符,例如,如果我在命令行中写入:
$ my_script xyz -m "something here"
并且在我的脚本中我访问命令行参数如下:
参数=“$*”
回显 $arguments
我将看到输出:xyz -m something here
。不幸的是,它删除了引号,是否可以保留它们?然后我想将这些参数传递给另一个脚本,我不知道有多少个,以及在行中的哪个位置会有引号。
答案1
实际上,我之前已经解决了我的问题,在我的第一个脚本中,我像上面写的那样启动了第二个脚本,但实际上在我的第一个脚本中我应该使用:
second_script“$@”
启动第二个脚本,现在它按预期工作。相关的是 $@ 周围的引号。