问题描述
我正在尝试运行一个接受命令行参数的 sudoed curled bash 脚本,但我遇到了语法问题。使用这个,参数 ($0) 似乎没有被脚本接收。
sudo sh -c "$(curl -sSL https://s3-us-west-2.amazonaws.com/script/path/install.sh) argument"
解决方法
阅读关于美丽的 sh(1) man page 的 -c
部分:
-c 字符串
如果存在 -c 选项,则从字符串中读取命令。 如果字符串后面有参数,则将它们分配给位置参数,从 $0 开始。
所以你需要做的就是将参数移动'脚本'
sudo sh -c "$(curl -sSL https://s3-us-west-2.amazonaws.com/script/path/install.sh)" 'argument'
小测试示例:
sh -c 'echo "args: $0"' 'Test argument'