の場合最初の入力が.txt
で終了するかどうかを確認する方法を理解しようとしています。私は入力を取得する方法に基づいて私のコードには文の構文が適用されない場合、標準のように思えます。私の最初のifステートメントのelse ifステートメントの正しい構文を誰かが知っていますか?文の構文がエラー
elif [[ "$1" = *.txt ]]
あなたはまた、正規表現のマッチングを使用することができます:(マッチングを無効に引用符を除去しながら)バッシュ二重括弧条件文を使用することができ、動作するようにパターンマッチングするためには
#!/bin/sh
printf "%b %b\n" "$*"
if [ "$1" = "-help" ]
then
echo "Cool Beans"
elif [ "$1" = "*.txt" ]
then
echo "text recd"
else
echo "first input not valid"
fi
if [ "$2" = "-help" ]
then
echo "help options"
else
echo "second input not valid"
fi
をbashであなたは確かにマッチする正規表現を使用することができます(例えば、[[$ 1 =〜\ .txtファイル]])または変数置換を(例:[[$ {1%*。} = txt]])。これがshに当てはまるかどうかはわかりません。ほとんど確実に*は引用符で囲まれていなければ展開されます... – setempler
@setemplerありがとう。 Imは実際にshにタグを変えるつもりです。 didntはそれについて考えていました。 – Jimmy