Ale*_*ysh 7 bash escaping command-line-arguments
我需要编写一个bash脚本,除其他外,应该将其所有参数原封不动地传递给另一个程序.
最小的例子:
$ cat >proxy.sh #!/bin/bash ./script.sh $@ ^D $ chmod +x proxy.sh $ cat >script.sh #!/bin/bash echo one $1 echo two $2 echo three $3 ^D $ chmod +x script.sh
这种天真的方法不适用于带空格的参数:
$ ./proxy.sh "a b" c one a two b three c
预期:
$ ./proxy.sh "a b" c one a b two c three
proxy.sh为了实现这一点,我应该写些什么?
请注意,我不能使用别名,proxy.sh必须是一个脚本 - 它在调用之前做了一些事情script.sh.
mar*_*cog 11
引用$@,制作它"$@":
$ cat >proxy.sh
#!/bin/bash
./script.sh "$@"
^D
Run Code Online (Sandbox Code Playgroud)
然后它保留原始报价:
one a b
two c
three
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1001 次 |
| 最近记录: |