我有一个名为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
的脚本,其内容为:
// b.sh:
#!/bin/bash
`a.sh`
exit
----------------------------------
当我单独执行a.sh
时,我能够看到输出..但是,当我执行b.sh
时,我无法在控制台上看到输出..(i尝试了几次 - 重定向a.sh
的输出 - 但没有成功)。
所以,我需要的是重定向,这将使我能够在控制台上执行a.sh
时查看b.sh
内容的输出。
谢谢, 拉维。
答案 0 :(得分:5)
`a.sh`
<{1>}中的表示获取a.sh的输出并将其用作带参数的命令。你只需要在b.sh中执行a.sh
b.sh
而不是
$A_SH_PATH/a.sh
答案 1 :(得分:0)
这应该“正常”。
你的$ PATH上有a.sh吗?
如果没有,您需要使用路径调用它,例如./a.sh
答案 2 :(得分:0)
尝试从b.sh中删除反引号,如下所示。 这适合我。
#!/bin/bash
a.sh
exit
答案 3 :(得分:0)
a.sh中的以下几行:
echo `date` temp=`echo "$temp+1" | bc`
可以改写为:
date : $(( temp += 1 ))
似乎你遇到的根本问题是对反引号的误解,你应该理解为什么“echo`date`”(几乎)与“date”完全相同(它们仅在空格上有所不同)。我对第二行的改变只是个人偏好(它也更有效率)。