【发布时间】:2021-06-11 12:28:19
【问题描述】:
我的简单 shell 脚本如下所示
test.sh
#!/bin/zsh
echo $SHELL
当我运行命令sh test.sh 时,结果是/bin/zsh。
当我运行命令sudo sh test.sh 时,结果是/bin/bash。
我想用sudo 运行这个脚本并且需要shell 是zsh。有人可以帮忙吗?
【问题讨论】:
-
sudo /bin/zsh test.sh? -
就我而言,
zsh位于/usr/bin/zsh。上面带有#!/usr/bin/zsh的代码的输出是#!/usr/bin/zsh。你可以检查一下。 -
正如已删除的答案指出的那样,
$SHELL不是当前的 shell。这是你的登录外壳。 -
如果你需要执行带有
zsh的脚本,那么不要使用sh。sudo /bin/zsh test.sh或使脚本可执行 (chmod +x test.sh) 并使用sudo ./test.sh执行它。 -
/bin/zsh test.sh 没有任何意义,因为脚本应该采用脚本中提到的外壳。好吧,经过几次点击和尝试,我发现我没有将 zsh 设置为超级用户的默认值。之后,我的脚本也将 zsh 置于 sudo 模式。
标签: zsh