无论如何,Bash控制流都会跳到其他地方

时间:2016-07-30 22:27:59

标签: bash

我正在尝试编写一个小脚本来为我切换分支。我很久以前就用bash写过了。在以下代码中,ifelif被跳过,无论我输入$1,它总是跳到else。我看过各种各样的例子,但没有任何工作,尽管它应该是。

#!/bin/bash

if [ "$1 " == "-p" ]
    then
        cd ui;
        git checkout p_4.1;
        cd ../services;
        git checkout p_4.1;
        cd ../application;
        git checkout p_4.1;
        cd ..;
elif [ "$1 " == "-b" ]
    then
        cd ui;
        git checkout b_.1;
        cd ../services;
        git checkout b_.1;
        cd ../application;
        git checkout b_.1;
        cd ..;
elif [ "$1 " == "-g" ]
    then
        cd ui;
        git checkout g_.1;
        cd ../services;
        git checkout g_.1;
        cd ../application;
        git checkout g_.1;
        cd ..;
elif [ "$1 " == "-j" ]
    then
        cd ui;
        git checkout j_.1;
        cd ../services;
        git checkout j_.1;
        cd ../application;
        git checkout j_.1;
        cd ..;
else
    echo "No Command Known!"
 fi 

我完全不知道它为什么不起作用。

2 个答案:

答案 0 :(得分:4)

双引号内的空格很重要,所有"$1 "都应该是"$1"(没有尾随空格)。

答案 1 :(得分:1)

每个$ 1后你似乎有一个空格。我相信这是你的问题。