從一個bash腳本我該如何執行一個perl腳本獲取輸出並在值爲0時退出? 另外在perl腳本中,我如何返回值,我只是返回它還是打印它?從bash腳本獲取perl腳本的輸出並退出
回答
#!/bin/bash perl-script args && exit
如果你想繼續運行,返回值是$?
請注意,perl腳本返回的值與腳本輸出之間存在區別。要獲得腳本的輸出,使用$()操作:
#!/bin/bash output=$(perl-script args) echo The perl script returned $? echo The output of the script was $output
爲了得到一個返回代碼,使用exit
功能。例如:
Perl腳本:
if ($success) {
$return_value = 0;
} else {
$return_value = 1;
}
exit($return_value);
bash腳本:
perl scriptname args > outfile && exit
這是假設你要退出,如果Perl腳本的返回值是0,你想使保存的輸出在outfile
中的Perl腳本。如果返回值不爲零,則存儲在$?
中,如果您願意,可以將該值保存到變量中。
來自perl腳本我打印「0」還是返回「0」也如何獲得$ return_value中的perl值 – user391986 2011-04-15 18:54:42
@user是Perl腳本。您使用'exit'函數從腳本中返回一個值。你可以像你通常在Perl中那樣將任何你喜歡的數字綁定到'$ return_value'。我在perl例子中加了一點來澄清。 – 2011-04-15 18:55:36
您的perl腳本:foo.pl
#!/usr/bin/perl
# do something and then
exit 1;
而且你的bash腳本foo.sh內:
#!/bin/bash
# do something and then call perl script
perl foo.pl
# check return value using $?
echo "perl script returned $?"
1並不意味着一個成功的返回值,順便說一句,'出口1'需要一個分號。 – 2011-04-15 18:54:39
謝謝補充缺少';'和正確的'1'絕對不代表成功的價值,這只是一個例子。 – anubhava 2011-04-15 18:56:41
- 1. perl腳本中bash腳本的輸出
- 2. Bash - 從子腳本退出父腳本
- 3. 從perl腳本輸出文件以供bash腳本讀取
- 4. bash腳本spwans本身並退出
- 5. perl bash腳本輸出輸入
- 6. bash腳本SFTP退出終止腳本
- 7. 「腳本」命令退出bash腳本
- 8. 獲取perl腳本的錯誤輸出。
- 9. 從Bash腳本輸出JSON
- 10. bash腳本輸出
- 11. bash腳本:`退出0`無法退出
- 12. bash腳本退出,不扔退出
- 13. Bash腳本su退出shell
- 14. bash:退出腳本循環
- 15. Bash腳本退出清理
- 16. bash腳本退出從功能
- 17. 從bash腳本中退出git日誌
- 18. Bash shell腳本:我如何退出並重新啓動腳本?
- 19. 從Python腳本獲取退出代碼與重定向輸出
- 20. 運行腳本的Bash捕獲輸出
- 21. Bash腳本從NodeJs腳本返回退出代碼
- 22. Bash腳本讀取'openssl help'的輸出
- 23. 用Perl腳本讀取TCPFlow的輸出
- 24. bash腳本打印輸出
- 25. 縮進Bash腳本輸出
- 26. 無法捕獲ctrl-c退出函數退出bash腳本
- 27. bash腳本 - 從命令的輸出
- 28. 從perl腳本獲取shell腳本
- 29. 如何從一個perl腳本調用多個perl腳本並生成輸出?
- 30. 從IIS上運行的PERL腳本獲取輸出的問題
實際上,如果返回的值不爲0,我希望它繼續運行 – user391986 2011-04-15 18:55:43
我得到:當我在bash腳本中添加&&時出現命令 – user391986 2011-04-15 19:09:01
@ user391986如果cmd返回零,則'cmd && exit'將退出,並且如果cmd返回任何其他值,將繼續運行。不知道爲什麼你沒有找到命令。 – 2011-04-15 22:24:00