2011-07-06 133 views
2

我有一個劇本叫a.sh,其內容是引用:捕獲一個shell腳本的輸出是從另一個shell腳本

//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時,我無法看到控制檯上的輸出..(我嘗試了幾次 - 重定向輸出a.sh - 但沒有成功)。

所以,我需要的是重定向,它使我能夠在控制檯上執行b.sh時看到a.sh內容的輸出。

謝謝, Ravi。

+0

有人請重新格式化,這是不可讀的。 – themel

回答

5
`a.sh` 
b.sh手段

採取a.sh的輸出,並把它作爲帶有參數的命令。你只需要在b.sh執行a.sh

​​,而不是

`a.sh` 
+0

現在很容易,我們可以真正閱讀這個問題:-) – Szocske

+0

非常感謝澄清..這只是意味着,我對反引號的理解是錯誤的..感謝您的啓發 – Ravishankar

+0

非常感謝澄清..所以,這意味着我對反引號的理解不正確。謝謝您的幫助。 – Ravishankar

0

這應該「只是工作」。

您的$ PATH上是否爲a.sh?

如果不是,則需要用路徑調用它,例如, ./a.sh

+0

a.sh以某種格式輸出日期,在b.sh中他正在做:'$(a.sh)',它將取出日期的輸出並嘗試執行它。 –

+0

如果格式正確,可以看到更多內容:-)放下反引號,或者回顯'./a.sh' – Szocske

+0

非常感謝您的澄清..所以,這意味着我對反引號的理解不正確。謝謝您的幫助。 – Ravishankar

0

嘗試從b.sh取出後引號像下面。 這對我有用。

#!/bin/bash 

a.sh 

exit 
+0

非常感謝澄清..所以,這意味着我對反引號的理解是不正確的。謝謝您的幫助。 – Ravishankar

0

在a.sh下面幾行:

 
    echo `date` 
    temp=`echo "$temp+1" | bc` 

可以改寫爲:

 
    date 
    : $((temp += 1)) 

看來你是有問題的根源是反引號的誤解,你應該明白爲什麼「echo ` date `」(幾乎)與「date」完全一樣(它們只有空白)。我對第二行的改變只是個人喜好(它也更有效)。

+0

非常感謝您的澄清..所以,這意味着我對反引號的理解是不正確的。謝謝您的幫助。 – Ravishankar

相關問題