簡體   English   中英

管道什么都不做

[英]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。

或者使用truefalse 他們所做的只是退出EXIT_SUCCESSEXIT_FAILURE

somecommand | true

請注意,從somecommand到stdout的每個輸出somecommand被刪除。

另一個選擇是使用cat

somecommand | cat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM