Come usare una pipe in uno script facoltativamente

3

Come posso ottenere l'utilizzo condizionale di una pipe per un'esecuzione di un comando in uno script.

Sembra questo

#!/bin/bash
XCPRETTY=" | xcpretty"
if [ $(which xcpretty | wc -l) == 0 ]; then
    XCPRETTY=""
fi
xcodebuild archive ....... $XCPRETTY || exit 1
    
posta Martin Mlostek 09.08.2018 - 13:42
fonte

2 risposte

5

Usa cat come no-op se xcpretty non è installato:

XCPRETTY="xcpretty"
which xcpretty || XCPRETTY="cat"
xcodebuild archive ....... | eval $XCPRETTY || exit 1
    
risposta data 09.08.2018 - 14:57
fonte
2

Potresti usare la shell builtin eval per costruire il comando ma il tuo codice diventa poco chiaro. Sarebbe molto meglio scrivere il tuo codice come:

if  type xcpretty
then
    xcodebuild.... | xcpretty
else
    xcodebuild....
fi
    
risposta data 09.08.2018 - 14:16
fonte

Leggi altre domande sui tag