![bashで動作するためにワイルドカードパターンをパラメータとして渡す方法は? [コピー]](https://linux33.com/image/96899/bash%E3%81%A7%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%82%92%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%A8%E3%81%97%E3%81%A6%E6%B8%A1%E3%81%99%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
私は次の関数にファイルパターンを渡すことをしています。
line=FILE*.txt
getFlag $line
そしてその機能は次のとおりです。
function getFlag
{
filepattern=$1
echo "File pattern is: $filepattern"
}
出力が必要です。
File pattern is: FILE*.txt
次のようにフォルダに一致するファイル名を持つ出力を取得した場合:
File pattern is: FILE123.txt
ファイルパターンを関数に変数として渡していますが、変数の拡張を妨げず、変数のパターンと一致するファイル名が渡されます。
上記のお手伝いをいただきありがとうございます。
答え1
〜のようにイルカチュウ、一重引用符または二重引用符を使用して、この関数に渡されたパラメータを引用することができます。
line='FILE*.txt'
または
line="FILE*.txt"
Bashに実行するように指示するものいいえ代替または一部置換はファイル名拡張なしで個別に行われます。
別のオプションは、when 設定行をエスケープ*
し、引用符を使用してパラメータを関数に渡すことです。
line=FILE\*.txt
getFlag "$line"