Quiero hacer una cadena de comandos bash con redirección y/o canalización, y usarla para mostrar la cadena de comandos o ejecutar la cadena de comandos. Un comando simple sin redirección o canalización funciona, pero una cadena de comandos con redirección o canalización no. Por ejemplo,
command="echo 1" $command echo "$command"mostraría
1 echo 1Sin embargo,
command="echo 1 | cat" $command echo "$command"mostraría
1 | cat echo 1 | catpero yo quiero
1 echo 1 | catDel mismo modo para la redirección,
command="echo 1 | cat > 1.out" $command echo "$command"mostraría
1 | cat > 1.out echo 1 | cat > 1.outpero yo quiero
echo 1 | cat > 1.outcon un nuevo archivo llamado "1.out" con contenido 1 en él.
¿Hay alguna manera de lograr lo que quiero?
Si desea que el shell evalúe la cadena como un comando, dígale que lo haga con eval :
eval "$command"