Tato otázka zde již obsahuje odpovědi :Podmíněný kanál
(7 odpovědí)
Uzavřeno před 3 lety.
        
        
        
               
        
        
        
    
    
        
            Linux
        
        
                
            
               
		
                
             
   
               
		
                
             
             
      
   
               
		
                
             
   
     
    
(7 odpovědí)
Uzavřeno před 3 lety.
Mám skript podobný následujícímu:
flag=false
# Do a bunch of stuff that might set flag to true.
if [[ "$flag" == "true" ]]; then
   command \
       | pipe_command_a \
       | pipe_command_b \
       | pipe_command_c \
       | pipe_command_d \
       > "${output_path}"
else
   command \
       | pipe_command_a \
       | pipe_command_c \
       | pipe_command_d \
       > "${output_path}"
fi
 Jediný rozdíl mezi flag je true nebo false dělá je, že pipe_command_b nemusí být spuštěn. Existuje způsob, jak to sbalit, abych nemusel opakovat všechny běžné věci?
Přijatá odpověď:
 Použijte cat místo příkazu, pokud jej chcete přeskočit:
command=cat
if [[ $flag == true ]] ; then
    command=pipe_command_b
fi
command \
    | pipe_command_a \
    | $command       \
    | pipe_command_c