代码之家  ›  专栏  ›  技术社区  ›  Isaac

Bash脚本编写一般问题(条件和变量传递)

  •  2
  • Isaac  · 技术社区  · 16 年前

    我对bash脚本比较陌生,而谷歌在这方面并没有我想象的那么有用。我只是在我的.bash_配置文件中玩一个小密码输入程序,它有如下功能:

    read PASSWORD
    if $PASSWORD != 'pass'; then
        echo "wrong. exiting"
        exit
    fi
    

    不幸的是,这不起作用。我得到了这些错误(达尔文10.6版)。。。

    编辑 很抱歉发了这个帖子。我的浏览器崩溃了,我甚至没有意识到这一点。最后我又一次自己弄明白了对不起。但是谢谢你的回答!

    4 回复  |  直到 16 年前
        1
  •  5
  •   Aurélien Gâteau    16 年前

    if [ $PASSWORD != 'pass' ]; then

    或者更好:

    if [ "$PASSWORD" != 'pass' ]; then

    如果$PASSWORD为空,将避免失败。

        2
  •  3
  •   Gonzalo    16 年前

    read PASSWORD
    if [ "x$PASSWORD" != "xpass" ] ; then
       echo "Wrong. Exiting."
       exit 1
    fi
    exit 0
    
        3
  •  2
  •   Dennis Williamson    16 年前

    您可能想知道两种解决方案 read 命令:

    -p string
    

    和

    -s
    

    因此,提示输入密码时,您可以执行以下操作:

    read -sp "Please enter your password: " PASSWORD
    echo
    

    This 是一个很好的资源。

        4
  •  2
  •   ghostdog74    16 年前

    用例/esac构造

    read -p "enter: " PASSWORD
    case "$PASSWORD" in
        "pass") echo "ok;;
        * ) echo "not ok";;
    esac
    

    x=10
    y=5
    z=1
    options=3
    expression="$((x> y)) $((y> z)) $((options<=4))"
    case "$expression" in
       "1 1 1")
        echo "x > y and y>z and options <=4";;
        *) echo "Not valid";;
    esac