Roc*_*y86 4 grep bash shell-script variable
基本上我有以下场景,例如
grep 'test: \K(\d+)' $file => 15grep 'test1: \K(\d+)' $file => 20有没有办法将两个命令的结果存储到一个变量中,比如用逗号作为分隔符,
Test="grep 'test: \K(\d+)' $file;grep 'test1: \K(\d+)' $file"
Run Code Online (Sandbox Code Playgroud)
答案=eval $Test
预期输出:15,20?
是的,您可以使用命令替换来做到这一点:
Test="$(grep 'test: \K(\d+)' $file),$(grep 'test1: \K(\d+)' $file)"
Run Code Online (Sandbox Code Playgroud)
variable=$(..)称为命令替换,它的意思仅是运行 shell 命令并将其输出存储到变量或使用echo命令显示回来。例如显示日期和时间:
echo "Today is $(date)"
Run Code Online (Sandbox Code Playgroud)
并将其存储到变量中:
SERVERNAME="$(hostname)"
Run Code Online (Sandbox Code Playgroud)
您可以连接到输出:
echo "$(hostname),$(date)"
Run Code Online (Sandbox Code Playgroud)
结果将是:
yourhostname,Tue Jan 24 09:56:32 EET 2017
Run Code Online (Sandbox Code Playgroud)