シェルスクリプトは初めてです。特定のファイルへのパスを含む変数があります。この変数にスペースが含まれているかどうかを確認したいと思います。
で試してみました
if [[ ${VAR} = "${VAR% *}" ]] ; then
echo "contains spaces"
else
echo "doesnot contain spaces"
fi
しかし、それは機能しません。どんな助けでも本当に感謝するでしょう。
また
case ${VAR} in
*\ * ) echo "VAR=$VAR has at least one space char" ;;
* ) echo "VAR=$VAR has no space chars" ;;
esac
IHTH
良い解決策ですが、条件を逆にする必要があります。${VAR% *}
最後のスペースまでストリップするので、それが等しい場合、${VAR}
スペースはありませんでした。
空の場合は、最初の${VAR}
インもエスケープする必要があります。""
if [[ "${VAR}" == "${VAR% *}" ]] ; then
echo "doesn't contains spaces"
else
echo "contains spaces"
fi
別の解決策:
echo $VAR | grep ".*\s.*" && echo "Space exists" || echo "No space exists"