Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 需要修复if-else脚本_Linux_Bash_Unix - Fatal编程技术网

Linux 需要修复if-else脚本

Linux 需要修复if-else脚本,linux,bash,unix,Linux,Bash,Unix,我想制作一个脚本,它应该接受一个参数,检查它是否等于给定的单词,然后相应地显示一条消息。我使用ubuntu操作系统的bash外壳。我根据教程尝试了一些东西,但失败了 #!/bin/bash if ["$1"=="password"] then echo correct password else echo wrong password fi bash Script.sh密码 错误信息为- [密码=密码]:未找到命令 如何修复它?空白: #!/bin/bash if [ "$1" == "pas

我想制作一个脚本,它应该接受一个参数,检查它是否等于给定的单词,然后相应地显示一条消息。我使用ubuntu操作系统的bash外壳。我根据教程尝试了一些东西,但失败了

#!/bin/bash
if ["$1"=="password"]
then
echo correct password
else
echo wrong password
fi
bash Script.sh密码

错误信息为- [密码=密码]:未找到命令

如何修复它?

空白:

#!/bin/bash
if [ "$1" == "password" ]
then
echo correct password
else
echo wrong password
fi
if后面的表达式实际上是一个命令,命令由空格分隔。因此,您的命令是[$1==password],它扩展为[password==password],显然不存在/usr/bin/[password==password]any

在我更正的代码中,命令是[yes,有一个/bin/],行的其余部分是参数


详细信息请参见man test test test是[.

LOL!的一种别名。谢谢。我不知道这一点。[是test命令的同义词,而不是语法,尽管它非常模拟语法,因此与test不同,需要的是最后一个参数],因此它必须像所有命令一样与其参数分开。这是个糟糕的问题吗?