Shell Script incapaz de executar o comando passado como entrada

1

Estou tentando executar o comando a partir do script, mas não consigo executá-lo.

script: command.sh

#!/bin/bash
a=$1  
b=$2
echo "a=$a"
echo "b=$b"
'$a | $b'

Comando de execução:

bash-3.2 $ ./command.sh "tar cvf - DIR" "comprime -c > /export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z"

ouptut:

./command.sh "tar cvf -DIR" "comprime -c > /export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z"

a = tar cvf - DIR

b = comprimir -c > /export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z

/export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z: already has .Z suffix -- no change tar: DIR: No such file or directory bash-3.2$

{Nota: Requisito é passar dois comandos completamente não modifique ou coloque lógica no script}.

O comando

trabalha diretamente a partir do prompt. Eu acho que há um problema com o > operador

Você pode por favor sugerir algo sobre isso?

Obrigado Anil

    
por Anil Bhendarkar 04.03.2015 / 11:47

1 resposta

0

Remova os backticks. Isso parece funcionar para mim. É isso que você queria?

#!/bin/sh
a=$1  
b=$2
echo "a=$a"
echo "b=$b"
$a | $b
    
por 11.03.2015 / 06:36

Tags