微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有 curl 和命令行参数的 Sudo sh 脚本

如何解决带有 curl 和命令行参数的 Sudo sh 脚本

我正在尝试运行一个接受命令行参数的 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'

Try it online!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。