Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将命令结果存储在shell变量中?_Bash_Shell - Fatal编程技术网

Bash 如何将命令结果存储在shell变量中?

Bash 如何将命令结果存储在shell变量中?,bash,shell,Bash,Shell,我想找出主目录中目录和文件的数量,并将其存储在shell变量中。我正在使用以下一组命令 command="ls -l | grep -c \"rahul.*patle\"" eval $command 我想将结果存储在一个变量中。如何执行此操作?将命令输出存储到变量中的语法是var=$(command) 因此,您可以直接执行以下操作: result=$(ls -l | grep -c "rahul.*patle") 变量$result将包含匹配数。您可

我想找出主目录中目录和文件的数量,并将其存储在shell变量中。我正在使用以下一组命令

command="ls -l | grep -c \"rahul.*patle\""
eval $command

我想将结果存储在一个变量中。如何执行此操作?

将命令输出存储到变量中的语法是
var=$(command)

因此,您可以直接执行以下操作:

result=$(ls -l | grep -c "rahul.*patle")

变量
$result
将包含匹配数。

您可能最好使用
ls-1
(第一)而不是
ls-l
grep-cE
,具体取决于您的系统。是否可以保存变量,但是仍然同时保持终端输出吗?@Leo我认为这是不可能的。您可能可以为此使用一个中间文件:
command | tee tmp_file
然后
var=$(
。这执行命令;使用
tee
您可以在终端输出中看到它,并且它也存储在文件
tmp_文件
中;然后,将文件读入
$var
。我只是用一个额外的管道
tee
制作了它<代码>结果=$(ls-l | tee/dev/tty | grep-c“rahul.*patle”)
@Leo哦,这是一个很好的结果!我刚才问了一个问题:。请随意将您的评论纳入其中,作为一般参考。