我一直在开发一个示例 bash 程序来练习 bash 脚本编写,但每当我尝试使用正确的变量运行它时,它都会输出“[:=:预期的一元运算符”并退出。
#! /bin/bash
clear
i=""
P="PASSWORD"
echo "Please enter your password"
while [ $i = "PASSWORD" ]
do
read $i
done
Run Code Online (Sandbox Code Playgroud)
如果 $i 为空,则由于参数不足而出现语法错误 [ = "PASSWORD" ]
你可以使用 bash 选项 [[ $i = "PASSWORD" ]] 但它是 bash 操作符,它可能与旧 shell 不兼容
你可以把你的变量放在配额中,比如 [ "$i" = "PASSWORD" ] 这是首选的事情,如果你的变量包含空格或 shell 扩展标记,如 *、?、[1..9 ]