La idea sería usarlo como ... una tubería en un comando. Por ejemplo: digamos que hay algún tipo de camino largo que debe ser reescrito una y otra vez, seguido de una tubería y un segundo programa, es decir
"directory1/directory2/direcotry3/file.dat | less -I "
Me gustaría que esa parte se almacene en una variable, por lo que podría usarse así:
r="directory1/directory2/direcotry3 \| less -I -p "
$ cat path1/path2/$r <searchterm>
En cambio, me sale
cat: invalid option -- I
Try `cat --help' for more information.
... lo que significa que la tubería claramente no funcionó.
eval
, generalmente haces una función.Respuestas:
bash no reinterpreta completamente la línea de comando después de expandir las variables. Para forzar esto, pon
eval
delante:Sin embargo, hay formas más elegantes de hacerlo (alias, funciones, etc.).
fuente
Estás intentando mezclar código y datos, lo cual no es una buena idea. En su lugar, defina una función que tome un nombre de archivo (directorio?) Como argumento y lo muestre con
less
.fuente