L'idée serait de l'utiliser comme ... un tuyau dans une commande. Par exemple: disons qu'il y a une sorte de long chemin qui doit être retapé encore et encore, suivi d'un tube et d'un deuxième programme
"directory1/directory2/direcotry3/file.dat | less -I "
J'aimerais que cette partie soit stockée dans une variable, donc elle pourrait être utilisée comme ceci:
r="directory1/directory2/direcotry3 \| less -I -p "
$ cat path1/path2/$r <searchterm>
Au lieu de cela, je reçois
cat: invalid option -- I
Try `cat --help' for more information.
... ce qui signifie que la pipe n'a clairement pas fonctionné.
eval
, vous créez généralement une fonction.Réponses:
bash ne réinterprète pas complètement la ligne de commande après avoir développé les variables. Pour forcer cela, mettez
eval
en avant:Néanmoins, il existe des moyens plus élégants de le faire (alias, fonctions, etc.).
la source
Vous essayez de mélanger du code et des données, ce qui n'est pas une bonne idée. Au lieu de cela, définissez une fonction qui prend un nom de fichier (répertoire?) Comme argument et l'affiche avec
less
.la source