我有一个包含某些安装说明的文本文件,我知道我可以 grep 查找文件中的唯一出现。例如,文本文件具有以下内容:
MYDIR=`find /home/user -name somedir` 导出 PERL5LIB=$PERL5LIB:$MYDIR
在 bash 中,如何在文件中的 grep 之后执行行?就像是:
执行“grep somedir INSTALLFILE”的结果 执行“grep 'export PERL5LIB' INSTALLFILE”的结果
Gil*_*il' 13
要在单独的 shell 进程中评估行:
grep somedir INSTALLFILE | sh
Run Code Online (Sandbox Code Playgroud)
要评估正在运行的 shell 进程中的行:
eval "$(grep somedir INSTALLFILE)"
Run Code Online (Sandbox Code Playgroud)
假设:
您可以将命令重定向到临时文件并执行:
tmp=$(mktemp)
{
grep somedir INSTALLFILE
grep 'export PERL5LIB' INSTALLFILE
} > "$tmp"
. "$tmp"
Run Code Online (Sandbox Code Playgroud)
或者你可以评估结果
eval "$(grep somedir INSTALLFILE)"
eval "$(grep 'export PERL5LIB' INSTALLFILE)"
Run Code Online (Sandbox Code Playgroud)
更新一个旧答案。我今天要做的是使用进程替换:
source <(
grep somedir INSTALLFILE
grep 'export PERL5LIB' INSTALLFILE
)
Run Code Online (Sandbox Code Playgroud)