#!/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
),和任何其他命令一样,用空格分隔参数.
如果值为空或包含空格或通配符,则还应将变量放在双引号中.
最后,运算符执行字符串比较=
,虽然某些版本的test
allow ==
作为扩展名.
归档时间: |
|
查看次数: |
17687 次 |
最近记录: |