1

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

我试过了

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

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

4

3 回答 3

3

或者

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

IHTH

于 2013-01-14T02:09:09.510 回答
1

很好的解决方案,但您需要颠倒条件。${VAR% *}剥离到最后一个空格,所以如果它等于${VAR}则没有任何空格。

如果它是空${VAR}的,你也应该逃避第一个。""

if [[ "${VAR}" == "${VAR% *}" ]] ; then
    echo "doesn't contains spaces"
else
    echo "contains spaces"
fi
于 2013-01-13T10:56:09.697 回答
0

另一种解决方案:

echo $VAR | grep ".*\s.*" && echo "Space exists" || echo "No space exists"
于 2013-01-13T11:24:42.217 回答