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
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 comandotrabalha diretamente a partir do prompt. Eu acho que há um problema com o > operador
Você pode por favor sugerir algo sobre isso?
Obrigado Anil
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
Tags shell