捕获从另一个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
非常感谢您的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。非常感谢你的澄清。。这仅仅意味着,我对回跳的理解是错误的。。谢谢你的启发谢谢你的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。非常感谢你的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。非常感谢你的澄清。。因此,这意味着我对回跳的理解是不正确的。谢谢你的帮助。