shell - 确定当前用户的shell

标签 shell

我正在编写一个 .sh 脚本,它会在某个时候将用户的 shell 更改为/bin/zsh。命令当然是以下内容:

chsh -s /bin/zsh

但是,这要求输入用户的密码,如果当前用户的 shell 尚未 /bin/zsh,我只想执行它。 .为此,我需要一个让我知道当前 shell 的命令,并将其与 "/bin/zsh" 进行比较。或类似的东西。我发现有一个 c getusershell函数,但是没有办法从 shell 脚本中知道这一点吗?

更新:抱歉,我的意思是用户指定为首选 shell 的 shell。所以是的,在 /etc/passwd 中指定的那个.这背后的逻辑是,脚本即将将用户的首选 shell 更改为 zsh,我只是希望脚本首先检查它是否还不是 zsh。

最佳答案

$SHELL返回当前用户的 shell :

$ echo $SHELL
/bin/zsh

关于shell - 确定当前用户的shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943685/

相关文章:

linux - awk 查找字符串并下划线打印

mysql - 如何解释 shell 脚本中的 mysql 输出?

linux - Basename 带空格的文件名,并在命令 1 中使用带空格的文件名

bash - 如何递归地计算目录中的所有代码行?

linux - grep 日志文件仅用于 X 个具有特殊值(value)的最新条目

bash - 子脚本 eval 和 ${@} 差异

php - 当解释器位于非标准位置时,如何解决 "bad interpreter"错误?

java - 树莓派和 log4j

bash - 在 shell 脚本中正确使用 bc 吗?

linux - 如何跳过文件的第一行并读取剩余行作为 C 程序的输入?