ifステートメントでブール式を使用していますか?


2

if thenステートメントを実行したい:変数iが0〜9の正規表現に等しい場合、およびgrepが結果を返さない場合は、何かを実行します。これは正しい構文ですか?

if [[ $i =~ [0-9] ]] && if ! grep $i /opt/tftpboot/*; then

またはそれは

if [[ $i =~ [0-9] ]] && ! [[ grep $i /opt/tftpboot/* ]]; then

ifシェルでは、他の言語とは多少異なることに注意してください。次ifコマンドgnu.org/software/bash/manual/…を参照)であり、特別な構文ではありません。[[bash / ksh / zsh組み込みコマンドです。コマンドの終了ステータスはによって使用されifます。
グレンジャックマン

回答:


4

それは:

if [[ $i =~ [0-9] ]] && ! grep $i /opt/tftpboot/*; then

おそらくの出力は必要ないでしょう。grepその場合、次のことができます。

if [[ $i =~ [0-9] ]] && ! grep -q $i /opt/tftpboot/*; then
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.