bash:FORループ内にキーワールドがあるIF条件

bash:FORループ内にキーワールドがあるIF条件

私は塗りつぶしを繰り返し、それに対していくつかのコマンドを実行する単純なforループを作業しています。 「AllBoxes」キーワードで始まるファイルのみを考慮するには、IFステートメントを使用してフィルタを設定する必要があります。

  for pdb in "${storage}"/"${experiment}"/*.pdb ; do
    pdb_name=$(basename "$pdb" .pdb)
    # if file starts with pharase AllBoxes do something on the file
    if [[ ${pdb_name} =='AllBoxes*' ]] ; then
    echo Vizualisation of ${pdb_name} is being processed!
    fi
    done

これにより、IF文にエラーが発生します。

また、残りのパディングをすべてスキップするだけで十分ですか?ループを終了するには、ElseやElif Breakなどの機能を導入する必要がありますか?

ベストアンサー1

その後にスペースが必要なため、エラーが発生した可能性がありますが、==拡張テストでは同様のワイルドカードを使用できません。=~正規表現マッチング(類似)を使用できますが、引用符は文字通りAllBoxes.*処理されます。AllBoxesファイルにのみ興味がある場合は、ループを次のように変更できます。

for pdb in "${storage}/${experiment}"/AllBoxes*.pdb ; do

おすすめ記事