gpt4 book ai didi

Bash:如何转义 $@?

转载 作者:行者123 更新时间:2023-11-29 08:56:48 25 4
gpt4 key购买 nike

我需要编写一个 bash 脚本,除其他外,它应该将所有参数原封不动地传递给另一个程序。

最小的例子:

$ cat >proxy.sh #!/bin/bash./script.sh $@^D$ chmod +x proxy.sh $ cat >script.sh #!/bin/bashecho one $1echo two $2echo three $3 ^D$ chmod +x script.sh 

这种天真的方法不适用于带空格的参数:

$ ./proxy.sh "a b" cone atwo bthree c

预期:

$ ./proxy.sh "a b" cone a btwo cthree

为了实现这一点,我应该在 proxy.sh 中写些什么?

请注意,我不能使用别名,proxy.sh 必须是一个脚本 — 它在调用 script.sh 之前会做一些事情。

最佳答案

引用$@,使其成为"$@":

$ cat >proxy.sh 
#!/bin/bash

./script.sh "$@"
^D

然后它保留原始引号:

one a b
two c
three

关于Bash:如何转义 $@?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4569149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com