いくつかのインストール手順を含むテキストファイルがあり、ファイル内の一意のエントリを見つけるためにgrepを使用できることがわかります。たとえば、テキストファイルの内容は次のとおりです。
MYDIR=`/home/user -name somedir を探す` エクスポートPERL5LIB=$PERL5LIB:$MYDIR
bashでファイルのgrep次の行を実行するには?それは次のとおりです。
「grep somedir INSTALLFILE」実行結果 "grep 'export PERL5LIB' INSTALLFILE" 実行結果
答え1
別のシェルプロセスで行を評価するには、次の手順を実行します。
grep somedir INSTALLFILE | sh
実行中のシェルプロセス内で行を評価するには、次の手順を実行します。
eval "$(grep somedir INSTALLFILE)"
答え2
仮定:
- あなたはファイルを制御することができ、マルウェアの危険性はありません。
- この変数を現在のシェルに設定したい
コマンドを一時ファイルにリダイレクトし、次のコマンドを実行できます。
tmp=$(mktemp)
{
grep somedir INSTALLFILE
grep 'export PERL5LIB' INSTALLFILE
} > "$tmp"
. "$tmp"
あるいは、結果を評価することもできます。
eval "$(grep somedir INSTALLFILE)"
eval "$(grep 'export PERL5LIB' INSTALLFILE)"
以前の回答を更新してください。今日私がやるべきことは、プロセス置換を使用することです。
source <(
grep somedir INSTALLFILE
grep 'export PERL5LIB' INSTALLFILE
)
答え3
次のようにfindの「exec」機能を試しましたか?
find somedir -name INSTALLFILE -exec {}\;