文字列を評価、連結して実行する
hoge.txt
hoge hoge
fuga.txt
fuga fuga fuga
example.sh
#!/bin/bash value='hoge' #文字列としてコマンドを変数に格納 cmd='grep $value hoge.txt' echo $cmd eval $cmd
$ sh example.sh
grep $value hoge.txt
hoge hoge
#!/bin/bash
grep_text() {
for txt_file in $(ls . | grep ".txt$"); do
grep_result=$(grep $1 $txt_file)
if [ $? -eq 0 ]; then
eval echo $2
fi
done
}
query='hoge'
message='検索対象が見つかりました。見つかったファイル名:$txt_file'
grep_text $query "${message}"
query='fuga'
message='検索対象が見つかりました。見つかったファイル名:$grep_result'
grep_text $query "${message}"
$ sh success.sh
検索対象が見つかりました。見つかったファイル名:hoge.txt
検索対象が見つかりました。見つかったファイル名:fuga fuga fuga
何これ、やればやるほど次から次へと課題が出てくる