我有一个脚本,其中我有一行,它确实将第三行放入我的变量中,如下所示:
variable=`sed -n '3 p' /home/nmsadm/abc.txt`
所以variable
保存了这个值,它位于abc.txt的第三行。在我的情况下
将是单字行或空/空行。
如何比较shell脚本中的变量以确定它是否为空/空行?
echo $variable
让我感到空虚。
我需要在这里进行比较是什么 我确信这是一条空线?像这样:
if [ "$variable" = "comparison" ]; then
答案 0 :(得分:6)
空或未定义:
if [ -z "${variable-}" ]
单个换行符:
if [ "${variable-}" = $'\n' ]
未定义:
if [ "${variable+defined}" != defined ]
注意,最后一个命令是而不是与
相反if [ "${variable-undefined}" = undefined ]
要了解原因,请先尝试运行variable=undefined
。 "${variable+defined}"
只有两个可能的值:空字符串或defined
。
答案 1 :(得分:2)
read str
if [ ${#str} -eq 0 ] #this can been used to decide whether str is empty or not
then
echo "empty"
else
echo "not empty"
fi
答案 2 :(得分:1)
以下命令将变量的长度存储在var_length中。
var_length=$(echo ${#variable})
如果$ var_length大于或等于1,则$ variable是一个字符串