変数内に含まれているいくつかのgrepパターンを渡すのに苦労しています。これは私が持っているコードです:
#!/bin/bash
GREP="$(which grep)"
GREP_MY_OPTIONS="-c"
for i in {-2..2}
do
GREP_MY_OPTIONS+=" -e "$(date --date="$i day" +'%Y-%m-%d')
done
echo $GREP_MY_OPTIONS
IFS=$'\n'
MYARRAY=( $(${GREP} ${GREP_MY_OPTIONS} "/home/user/this path has spaces in it/"*"/abc.xyz" | ${GREP} -v :0$ ) )
これは私がやりたかったことです:
- grepがどこにあるかを決定/定義する
- grepに渡すパラメータを保持する変数(GREP_MY_OPTIONS)を割り当てます
- GREP_MY_OPTIONSにいくつかのパターンを割り当てます
- grepと$GREP_MY_OPTIONSに保存したパターンを使用して、スペースを含むパス内のいくつかのファイルを検索し、それらを配列に保持します
「echo$GREP_MY_OPTIONS」を使用すると、期待どおりの結果が生成されますが、スクリプトを実行すると、次のエラーで失敗します。
/ bin / grep:無効なオプション-''
私は何が間違っているのですか?パスにスペースが含まれていない場合は、すべてが正常に機能しているように見えるので、IFSと関係があると思いますが、よくわかりません。