【发布时间】:2015-08-30 00:02:07
【问题描述】:
我正在尝试检查 2 个变量是否为空或未在 bash 中同时定义。如果是这种情况,则不会更改用户密码。
#!/bin/bash
while true
do
read -s -p "Enter root password: " rootpass1
echo
read -s -p "Enter root password again: " rootpass2
echo
if [[-z "$rootpass1"] && [-z "$rootpass2"]]
then
echo "Password will not be changed"
break
else
if [ $rootpass1 != $rootpass2 ]
then
echo "Passwords are not identical"
else
echo "user:$rootpass1" | chpasswd
break
fi
fi
done
但我收到以下错误:
script.sh: line 8: [: missing `]'
有什么线索吗?
【问题讨论】:
-
编写自己的passwd command 版本是个糟糕的主意。尤其是即使在调试之后它仍然坏了because you are still using
if [ $rootpass1 != $rootpass2 ]
标签: bash if-statement conditional-statements logical-operators