2016-12-10 69 views
0

我想編寫shell腳本來根據當前使用的shell更新.zshrc,.bashrc等用戶配置文件。什麼是確定文件路徑的最佳方式?我需要做兩件事情,檢查當前shell並使用shell腳本更新用戶配置文件

  1. 確定其外殼是目前使用
  2. 知道用戶的配置文件路徑

我能做到像下面,但看起來很奇怪。

if [ "/usr/bin/zsh" == "$SHELL" ]; then 
    PROFILE_NAME=.zshrc 
elif [ "/usr/bin/bash" == "$SHELL" ]; then 
    PROFILE_NAME=.bashrc 
fi 

PROFILE_PATH=$HOME/$PROFILE_NAME 
echo $PROFILE_PATH 

回答

1

你看起來很合理。沒有標準的方法來要求通用的POSIX shell來告訴你它的配置文件是什麼。並不總是隻有一個!例如在Bash中,您可能正在尋找.bashrc.bash_profile。如果一個存在而另一個不存在,你可能想要修改現有的。

順便說一下,大多數用戶不會期望程序自動修改其shell配置。大多數程序只是在屏幕上打印一條消息,其效果如下:

If you want to use these settings, please add them to your shell profile: 

    export PATH=... 
    export STUFF=...