2017-01-30 36 views
0
  • 我通過一個禁用tty的自動化工具來運行我的shell。

parent.sh
echo "parent shell" 
./child.sh 

child.sh
echo child shell 
  • 當我執行終端控制檯上parent.sh它將輸出我如何在tty被禁用時輸出子shell

    parent shell 
    child shell 
    
  • 但是,當我通過我的自動化工具執行tty被禁用。它的輸出只有我:

    parent shell 
    
  • 有人能解釋爲什麼這種行爲,我怎麼能實現比redrect子shell輸出到另一個文件進行打印等。

+1

請查看[editing-help](http://stackoverflow.com/editing-help)。 – Cyrus

+1

嘗試像'/ path/to/child.sh'這樣的絕對路徑而不是'./ child.sh' – hek2mgl

+0

@ hek2mgl- child.sh正在執行。即使它的輸出是針對控制檯的。當tty被禁用時,它不會輸出child.sh。 –

回答

0

我找到了答案。我們必須使用bash調用子shell。
即bash child.sh

原因在於,當我們調用child shell時,它在新shell中執行,而我的自動化工具僅在父shell中輸出輸出。當我使用bash調用時,它會在父shell中執行子shell。

因爲我用bash shell,我正在用bash執行。對於其他shell,您需要使用相應的shell關鍵字調用子腳本。

相關問題