我想以不同的用户身份运行命令(当前用户是 root)。因此,我做
su newuser -c 'mkdir "/tmp/test"'
但我在向它传递参数时遇到问题
i="name"
su newuser -c 'mkdir "/tmp/$i"'
或在脚本中
su newuser -c 'mkdir "/tmp/$1"'
我想以不同的用户身份运行命令(当前用户是 root)。因此,我做
su newuser -c 'mkdir "/tmp/test"'
但我在向它传递参数时遇到问题
i="name"
su newuser -c 'mkdir "/tmp/$i"'
或在脚本中
su newuser -c 'mkdir "/tmp/$1"'
该行为的原因是在单引号内,变量扩展被禁用。在双引号内它是启用的。有关更多信息,请参阅此问答。
因此,您可以尝试
su
按如下方式更改您的通话:由于 to 的参数
su
现在用双引号括起来,因此$i
将被扩展,因为单引号(对于将最终结果传递给的解释 shellsu
)只是“文本”并且不再特殊。