文字列を評価、連結して実行する
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
何これ、やればやるほど次から次へと課題が出てくる