1

シェルスクリプトは初めてです。特定のファイルへのパスを含む変数があります。この変数にスペースが含まれているかどうかを確認したいと思います。

で試してみました

  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 に答える