這裏我再次。今天我寫了一個腳本,該腳本應該在我的debian env中默默啓動一個應用程序。 簡單簡單的bash腳本默默啓動應用程序
silent "npm search 1234556"
這個工作,但沒有。正如你所看到的,我評論了我有一些麻煩的部分。
這條線:
$($cmdLine) &
不隱藏應用程序的輸出,但這個
$($1 >/dev/null 2>/dev/null) &
完美。我錯過了什麼?非常感謝。
#!/bin/sh
# Daniele Brugnara
# October, 2013
# Silently exec a command line passed as argument
errorsRedirect=""
if [ -z "$1" ]; then
echo "Please, don't joke me..."
exit 1
fi
cmdLine="$1 >/dev/null"
# if passed a second parameter, errors will be hidden
if [ -n "$2" ]; then
cmdLine="$cmdLine 2>/dev/null"
fi
# not working
$($cmdLine) &
# works perfectly
#$($1 >/dev/null 2>/dev/null) &
爲什麼你認爲'&'確實stdout或stderr的任何重定向? – Jens
我不這麼認爲。 cmdLine具有輸出重定向。我做錯了嗎? –
'&'在命令的末尾只能在後臺運行該命令,但仍然該命令的stdout和stderr轉到tty。 – anubhava