#!/bin/bash
function getComment(){
local lang=$1;
local theComment=$2;
if [$lang == "Java"] #Surprisingly, an error occurs here: prog.sh: line 6: [Java: command not found
then
echo "//"$theComment; return;
else
echo "Language not found!"; return;
fi
}
getComment "Java" "Whoo!";
exit $?
Run Code Online (Sandbox Code Playgroud)
我正在写一个变量进行比较,以一个字符串一击脚本,我使用的[$lang == "Java"](如上所示)比较的值lang到"Java".但是,此比较会产生以下错误:
stderr:
prog.sh: line 6: [Java: command not found
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用[$lang -eq "Java"],并($lang -eq "Java")为好,但这些声明没有任何工作,而他们生产的一模一样的错误.
为什么会出现此错误,以及将局部变量与字符串文字进行比较的正确方法是什么?
Bar*_*mar 27
你需要周围的空间[和]:
if [ "$lang" = "Java" ]
Run Code Online (Sandbox Code Playgroud)
[是一个命令(它是它的同义词test),和任何其他命令一样,用空格分隔参数.
如果值为空或包含空格或通配符,则还应将变量放在双引号中.
最后,运算符执行字符串比较=,虽然某些版本的testallow ==作为扩展名.
| 归档时间: |
|
| 查看次数: |
17687 次 |
| 最近记录: |