Shell脚本检查变量是否包含空格

时间:2013-01-13 10:53:24

标签: shell unix

我是shell脚本新手。我有一个包含特定文件路径的变量。我想检查这个变量是否有任何空格。

我试过

  if [[ ${VAR} = "${VAR% *}" ]] ; then
      echo "contains spaces"
  else
      echo "doesnot contain spaces"
  fi

但它不起作用。任何帮助都会非常明显。

3 个答案:

答案 0 :(得分:3)

case ${VAR} in
  *\ * ) echo "VAR=$VAR has at least one space char" ;;
  * ) echo "VAR=$VAR has no space chars" ;;
esac

IHTH

答案 1 :(得分:1)

良好的解决方案但你需要扭转这些条件。 ${VAR% *}剥离到最后一个空格,如果它等于${VAR}则没有任何空格。

如果它是空的,您应该转义${VAR}中的第一个""

if [[ "${VAR}" == "${VAR% *}" ]] ; then
    echo "doesn't contains spaces"
else
    echo "contains spaces"
fi

答案 2 :(得分:0)

另一种解决方案:

echo $VAR | grep ".*\s.*" && echo "Space exists" || echo "No space exists"