有人可以帮我找出我在这个bash脚本上做错了什么.我正在尝试使用if语句内部case语句和bash抱怨语法错误.
findinfo() {
OPT1=$1
case "$OPT1" in
linux)
echo "Setting environment"
ESC="hello_linux" if [[ "$PROJN" == "ONE" || "$PROJN" == "two" ]]
;;
Windows)
echo "Setting environment"
ESC="hello_windows" if [[ "$PROJN" == "ONE" || "$PROJN" == "two" ]]
;;
Android)
echo "Setting environment"
ESC="hello_android" if [[ "$PROJN" == "ONE" || "$PROJN" == "two" ]]
;;
esac
}
Run Code Online (Sandbox Code Playgroud)
谢谢
cho*_*oba 10
在bash中,if必须在then部分之前:
if [[ "$PROJN" == "ONE" || "$PROJN" == "two" ]] ; then ESC=hello_linux ; fi
Run Code Online (Sandbox Code Playgroud)
ifPerl中可以使用"后缀"(也可能在其他地方),但不能在bash中使用.
以下语法是替代方案:
[[ $PROJN = ONE || $PROJN = TWO ]] && ESC=hello_linux
Run Code Online (Sandbox Code Playgroud)
......以下内容仍然较短,并且符合较旧的外壳:
case $PROJN in ONE|TWO) ESC=hello_linux ;; esac
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15581 次 |
| 最近记录: |