[英]Pipe that does nothing
我在AIX機器上,需要一個程序,在管道之后使用時什么也不做。
我會更准確。 我需要這樣的東西:
if [ $NOSORT ] ; then
SORTEXEC="/usr/bin/doesnothing"
else
SORTEXEC="/usr/bin/sort -u"
fi
# BIG WHILE HERE
do
done | SORTEXEC
我嘗試使用tee > /dev/null
,但我不知道是否還有其他更好的選擇。
任何人都可以幫助一個更合適的程序然后tee
嗎?
提前致謝
:
是POSIX規范中的可移植,無操作命令。
if [ "$NOSORT" ] ; then
SORTEXEC=:
else
SORTEXEC="/usr/bin/sort -u"
fi
:
保證是一個內置在POSIX兼容shell中的shell; 行為相似的其他命令可能是需要啟動新進程以忽略輸出的外部程序。
但是,正如tripleee指出的那樣,字符串意味着保存數據,而不是代碼。 改為定義shell函數:
if [ "$NOSORT" ]; then
SORTEXEC () { : ; }
else
SORTEXEC () { /usr/bin/sort -u; }
fi
while ...; do
...
done | SORTEXEC
使用tee
如下:
somecommand | tee
這只是將stdin復制到stdout。
或者使用true
或false
。 他們所做的只是退出EXIT_SUCCESS
或EXIT_FAILURE
。
somecommand | true
請注意,從somecommand
到stdout的每個輸出somecommand
被刪除。
另一個選擇是使用cat
:
somecommand | cat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.