Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
shell-将字符串与变量(字符串或数字)进行比较_Shell_String Comparison - Fatal编程技术网

shell-将字符串与变量(字符串或数字)进行比较

shell-将字符串与变量(字符串或数字)进行比较,shell,string-comparison,Shell,String Comparison,我想知道字符串变量是否为空。我通过将变量与文本空字符串(“”)进行比较来实现这一点 这是我的密码: var=$1 if [$var == ""]; then echo "\$var is $var" fi 当$1为”(无命令行参数)时,它会出现此错误: 当$1有一个值时,它工作正常 我尝试了以下方法,但他们仍然给了我一个错误: 将==更改为-eq 用“包围$var 将空格放在“内,使其成为” 1-3的不同组合 我希望能够将字符串变量(空或非空)与“”进行比较,因为它是一个命令名,所以

我想知道字符串变量是否为空。我通过将变量与文本空字符串(
“”
)进行比较来实现这一点

这是我的密码:

var=$1

if [$var == ""]; then
    echo "\$var is $var"
fi
$1
(无命令行参数)时,它会出现此错误:

$1
有一个值时,它工作正常

我尝试了以下方法,但他们仍然给了我一个错误:

  • ==
    更改为
    -eq
  • 包围
    $var
  • 空格
    放在
    内,使其成为
  • 1-3的不同组合

  • 我希望能够将字符串变量(空或非空)与

    进行比较,因为它是一个命令名,所以在开始括号(
    [
    )后面应该始终有一个空格

    最接近您自己的方法:
    如果[“$var”=”];那么…

    另一种方法(
    -n
    测试非空性的谓词):
    如果[-n“$var”];那么…


    需要在
    $var
    周围加双引号。

    您使用的是哪个shell?为了保持原始测试的相同含义,您希望使用
    [-z“$var”]
    (-z:如果参数是零长度字符串,则为true)
    ./script.sh: line 5: [: ==: unary operator expected