这是我想使用 sudo -i
运行的示例 bash 脚本:
#!/bin/bash
echo "arg 1: $1"
echo "arg 2: $2"
当我使用一个空参数正常运行此命令时,它按预期运行:
$ /tmp/args.sh "" two
arg 1:
arg 2: two
使用简单的 sudo,我得到了预期的结果:
$ sudo /tmp/args.sh "" two
arg 1:
arg 2: two
但是,如果我使用 -i
(获取用户的 shell 和登录脚本),第一个参数突然消失了:
$ sudo -i /tmp/args.sh "" two
arg 1: two
arg 2:
而且我想不出任何方法来引用或转义第一个空参数。
注意:我找到了一个解决方法,方法是将 /tmp/args.sh ""two
写入一个文件,然后使用 sudo -i 执行它
,但我想知道是否有任何方法可以直接从命令行实现这一点。
最佳答案
这对我有用:
sudo -i bash -c '/tmp/args.sh "" two'
关于linux - 将空参数传递给 sudo -i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892812/