我有以下bash腳本(這是更復雜腳本的簡化版本)。 #!/usr/bin/env bash
set -x
function execute() {
`$1` # same as $($1), gives "command not found" as do all the following:
# $1 # or ${1}
# eval "$1"
# e
我是用我的bash功能「退出1」語句來終止整個腳本,它工作得很好: function func()
{
echo "Goodbye"
exit 1
}
echo "Function call will abort"
func
echo "This will never be printed"
但後來我意識到,當所謂的喜歡它不這樣做的工作: res=$(func)
可能重複: Spawn a background process in Ruby 花了幾天在這個戳。直到最近,我一直在使用操作系統中的ruby 1.8.7。我會用反引號來調用子shell。子shell是一個bash包裝器,它將調用在後臺運行任何程序,stdout和stderr都關閉。然後,它不再讓init接管該進程,並立即返回。這個工作很好,多年來,我會有這個循環過程在後臺啓動工作,並立即回報「是