我嘗試使用 nohup 運行以下命令(參考),它基本上將 stdout 和 stderr 分為兩個行程。
{ foo 2>&1 1>&3 3>&- | sed -u 's/^/err: /'; } 3>&1 1>&2 | sed -u 's/^/out: /'
foo 腳本如下所示。
#!/bin/bash
while true; do
echo a
echo b >&2
sleep 1
done
這是測驗結果。
$ nohup { foo 2>&1 1>&3 3>&- | sed -u 's/^/err: /'; } 3>&1 1>&2 | sed -u 's/^/out: /' >/dev/null 2>&1 &
-bash: syntax error near unexpected token `}'
uj5u.com熱心網友回復:
這在語法上是不可能的。但是您可以將您的包裝{}在sh -c cmd:
nohup sh -c 'foo 2>&1 1>&3 3>&- | sed -u "s/^/err: /"'
請注意,我將 sed 的單引號更改為雙引號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520104.html
標籤:重击诺哈普
上一篇:如何在檔案中查找內容并替換相鄰值
