set和shopt都是控制各种选项的 shell 内置函数。我经常忘记哪个命令设置了哪些选项,以及设置/取消设置了哪些选项 ( set -o/+o, shopt -s/-u)。为什么有两个不同的命令看似做同样的事情(并且有不同的参数)?有什么简单的方法/助记符可以记住哪个选项与哪个命令一起使用?
在 Ubuntu 中,我喜欢
shopt -s autocd
Run Code Online (Sandbox Code Playgroud)
在我的.bashrc文件中输入“cd”进行自动 CD,即只需输入目录名称(也可能使用制表符完成),然后按回车键,然后按 cd 到目录(如果存在)。
在 OSX 上,这对我的无效 .bashrc
我怎样才能为此做一个“依赖”?这样我就可以在两个操作系统之间共享和维护一个 .bashrc 吗?
我知道一个文件我可以做这样的事情:
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
Run Code Online (Sandbox Code Playgroud)
对于像 tmux 这样依赖于屏幕的应用程序,我可以做到
if [[ ! $TERM =~ screen ]]; then
if [ -n "$(type -P tmux)" ]; then
exec tmux
fi
fi
Run Code Online (Sandbox Code Playgroud)
但我能不能做这种事情,我能不能做shopt -s autocd?