文字列に1つ以上のアスタリスクが含まれているかどうかを確認したい。
私はこれを試しました:
if [[ $date_alarm =~ .*\*.* ]]
then
...
fi
スクリプトを直接起動した場合は機能しましたが、シャットダウン中にこのスクリプトが呼び出された場合は機能しませんでした(スクリプトはupdate-rc.dを介してランレベル0および6にインストールされました)
何かアイデア、提案はありますか?
ありがとう
常に文字列を引用します。
文字列$date_alarmにアスタリスクが含まれているかどうかを確認するには、次のようにします。
エコーx"$date_alarm" | grep'*'> / dev / null; それから ..。 fi
expr "$date_alarm" : ".*\*.*"
交換するとどうなりますか
if [[ $date_alarm =~ .*\*.* ]]
と
if [[ "$date_alarm" =~ .*\*.* ]]
また、試してみることもできます。
if [[ "$date_alarm" =~ '\*+' ]]
それについてはよくわかりません...
よろしく
case "$date_alarm" in
*\**)
...
break
;;
*)
# else part
...
;;
esac
構文は/bin/ shですが、機能します。
if echo $date_alarm|perl -e '$_=<>;exit(!/\*/)'
then
...
fi
ついに
if echo x"$date_alarm" | grep '*' > /dev/null; then
トリックをしました
奇妙なこと=〜。*。シャットダウン中のinitコンテキストでのみ機能しませんが、bashコンテキストで起動した場合は完全に機能します。
他の人のようにstdoutをリダイレクトする必要はありません。代わりに、grepの-qオプションを使用してください。
エコーx"$date_alarm" | grep -q'*'; それから