我有以下 bash 功能:
myworkhomebrewapp(){ atom $HOMEBREW_FRONTEND; atom $HOMEBREW_BACKEND; workon homebrew_server; cd $HOMEBREW_BACKEND; python manage.py runserver & ; /usr/bin/open -a "/Applications/Google Chrome.app" "file:///Users/cchilders/projects/good_brews/frontend/index.html" ;}
但它会导致错误
$ src
-bash: /Users/cchilders/.bash_profile: line 63: syntax error near unexpected token `;'
-bash: /Users/cchilders/.bash_profile: line 63: `myworkhomebrewapp(){ atom $HOMEBREW_FRONTEND; atom $HOMEBREW_BACKEND; workon homebrew_server; cd $HOMEBREW_BACKEND; python manage.py runserver & ; /usr/bin/open -a "/Applications/Google Chrome.app" "file:///Users/cchilders/projects/good_brews/frontend/index.html" ;}'
我不知道是什么导致了错误,但注释掉那行可以修复它。请问我的 bash 函数在哪里坏了?谢谢
一个解决方案:
我可以通过在 .bashrc 中拆分新行来解决该问题,但这不是我想要的:
myworkhomebrewapp(){
atom $HOMEBREW_FRONTEND
atom $HOMEBREW_BACKEND
workon homebrew_server
cd $HOMEBREW_BACKEND
python manage.py runserver &
sleep 5
/usr/bin/open -a "/Applications/Google Chrome.app" "file://$HOMEBREW_FRONTEND/index.html"
}
答案1
意外标记附近有语法错误;
运行你的一行代码壳牌检测引发以下警告/错误(警告为绿色,错误为红色):
删除将;
消除python manage.py runserver & ;
错误,仅留下警告:
ShellCheck - 一个shell脚本静态分析工具
ShellCheck 是一个 GPLv3 工具,可以为 bash/sh shell 脚本提供警告和建议:
终端的屏幕截图,突出显示了有问题的 shell 脚本行。
ShellCheck 的目标是
指出并澄清导致 shell 给出神秘错误消息的典型初学者语法问题。
指出并澄清导致 shell 行为奇怪且违反直觉的典型中级语义问题。
指出细微的警告、极端情况和陷阱,这些可能会导致高级用户的原本可以正常工作的脚本在未来情况下失败。
来源壳牌检测