Cómo usar una canalización en un script opcionalmente

3

¿Cómo puedo lograr el uso condicional de un conducto para la ejecución de un comando en un script?

Se parece a esto

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

2 respuestas

5

Solo usa cat como no-op si xcpretty no está instalado:

XCPRETTY="xcpretty"
which xcpretty || XCPRETTY="cat"
xcodebuild archive ....... | eval $XCPRETTY || exit 1
    
respondido por el nohillside 09.08.2018 - 14:57
2

Puede usar el shell builtin eval para construir el comando pero su código no es claro. Sería mucho mejor escribir su código como:

if  type xcpretty
then
    xcodebuild.... | xcpretty
else
    xcodebuild....
fi
    
respondido por el fd0 09.08.2018 - 14:16

Lea otras preguntas en las etiquetas