大家帮看看有什么问题?
#!/bin/sh # This is some secure program that uses security. VALID_PASSWORD="secret" #this is our password. echo "Please enter the password:" read PASSWORD if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then echo "You have access!" else echo "ACCESS DENIED!" fi
总提示这个 [: 13: secret: unexpected operator
这个可能是编码问题,Linux中的换行符和Windows的不一样。
你用编辑器检查一下,如果你是用的Vim,可以
set fileformat=unix
:wq
这样就可以了
应该不是,因为我是在linux下直接编辑的 而且用-x没有问题。
这里好像有个字符匹配和模式匹配的问题!
if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then
改成
if [ "$PASSWORD" = "$VALID_PASSWORD" ]; then
试试
执行man test看一下条件设置的语法。
test "$str1"="$str2" 是“=”不是“==”
判断字符串
test –n 字符串 字符串的长度非零
test –z 字符串 字符串的长度为零
test 字符串1=字符串2 字符串相等
test 字符串1!=字符串2 字符串不等
引用变量改成 ${VALID_PASSWORD} 这种形式?