Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
捕获从另一个shell脚本调用的shell脚本的输出_Shell_Redirect - Fatal编程技术网

捕获从另一个shell脚本调用的shell脚本的输出

捕获从另一个shell脚本调用的shell脚本的输出,shell,redirect,Shell,Redirect,我有一个名为a.sh的脚本,其内容如下: //a.sh: #!/bin/bash temp=0 while [ "$temp" -ne 500 ] do echo `date` temp=`echo "$temp+1" | bc` sleep 1 done ---------------------------------- // b.sh: #!/bin/bash `a.sh` exit ----------------------------------

我有一个名为
a.sh
的脚本,其内容如下:

//a.sh:

#!/bin/bash
temp=0
while [ "$temp" -ne 500 ]
do
    echo `date`
    temp=`echo "$temp+1" | bc`
    sleep 1
done
----------------------------------
// b.sh:

#!/bin/bash

`a.sh`

exit
----------------------------------
另一个脚本名为
b.sh
,其内容如下:

//a.sh:

#!/bin/bash
temp=0
while [ "$temp" -ne 500 ]
do
    echo `date`
    temp=`echo "$temp+1" | bc`
    sleep 1
done
----------------------------------
// b.sh:

#!/bin/bash

`a.sh`

exit
----------------------------------
当我分别执行
a.sh
时,我能够看到输出。。但是,当我执行
b.sh
时,我无法在控制台上看到输出。。(我尝试过几次,试图重定向
a.sh
的输出,但没有成功)

因此,我需要的是重定向,这将使我能够在控制台上执行
b.sh
-时看到
a.sh
内容的输出

谢谢, 拉维。

这应该“管用”

a.sh在您的$PATH上吗

如果没有,则需要使用路径调用它,例如../a.sh

`a.sh`
在您的
b.sh
中,表示获取a.sh的输出并将其用作带参数的命令。你只需要在b.sh中执行a.sh

$A_SH_路径/A.SH
而不是

`a.sh`

尝试删除b.sh中的反引号,如下所示。 这对我有用

#!/bin/bash

a.sh

exit

a.sh中的以下行:

echo `date` temp=`echo "$temp+1" | bc` 回音日期` 温度=`echo“$temp+1”| bc` 可以重写为:

date : $(( temp += 1 )) 日期 :$((温度+=1))
看来,您遇到的根本问题是对背景符号的误解,您应该理解为什么“echo`date`”与“date”几乎完全相同(它们仅在空白处有所不同)。我对第二行所做的更改只是个人偏好(它也更有效)。

请有人重新格式化,这是不可读的。a.sh以某种格式输出日期,在b.sh中,他正在做:
$(a.sh)
这将获取日期的输出并尝试执行它。使用正确的格式可以看到更多内容:-)删除反勾号,或者做echo
/a.sh
非常感谢您的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。非常感谢你的澄清。。这仅仅意味着,我对回跳的理解是错误的。。谢谢你的启发谢谢你的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。非常感谢你的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。非常感谢你的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。