【发布时间】:2017-04-30 03:04:07
【问题描述】:
我正在尝试在我的 Mac OSX 上为 Chromium 编写一个 bash 别名。它在不在 bash 别名脚本中时有效,但在我尝试创建别名时无效。
我在终端中一个接一个地尝试了这些命令:
cd /Applications/Chromium.app/Contents/MacOS/
./Chromium --pro-server="socks5://localhost:1234
cd -
然后,我尝试将这些全部放入我的 .bash_profile 脚本中的一个别名命令中:
alias launch_chromium='cd /Applications/Chromium.app/Contents/MacOS/; ./Chromium --pro-server="socks5://localhost:1234" ; cd -'
现在,当我像这样启动 bash:bash --login,我得到了
unexpected EOF while looking for matching `''
而且,当我将别名命令中的内容复制并粘贴到终端中时,它可以完美运行:L
cd /Applications/Chromium.app/Contents/MacOS/; ./Chromium --pro-server="socks5://localhost:1234" ; cd -
我做错了什么?
【问题讨论】:
-
你能把
alias的定义用双引号括起来吗? -
一般来说,
.bash_profile仅对登录 shell 运行。并非所有交互式 shell 都是登录 shell,并且别名不会通过环境继承,因此您确实应该将别名定义放在.bashrc中。 -
请注意,在 macOS 中,终端仿真器倾向于启动登录 shell,因此确保
.bashrc来自.bash_profile变得更加有用。 -
我会考虑运行你的整个
.bash_profile到shellcheck.net,顺便说一下——这应该确定你的语法错误在哪里,因为它实际上并没有出现在这个别名中。 -
运行
non-loginshell 而不是loginshell 的原因是什么?
标签: bash macos shell alias chromium