A idéia seria usá-lo como ... um cano em um comando. Por exemplo: digamos que exista algum tipo de caminho longo que precise ser redigitado repetidamente, seguido por um canal e um segundo programa, ou seja,
"directory1/directory2/direcotry3/file.dat | less -I "
Gostaria que essa parte fosse armazenada em uma variável, para que pudesse ser usada assim:
r="directory1/directory2/direcotry3 \| less -I -p "
$ cat path1/path2/$r <searchterm>
Em vez disso, eu recebo
cat: invalid option -- I
Try `cat --help' for more information.
... o tubo claramente não funcionou.
eval
, geralmente você faz uma função.Respostas:
O bash não reinterpreta completamente a linha de comando após expandir as variáveis. Para forçar isso, coloque
eval
na frente:No entanto, existem maneiras mais elegantes de fazer isso (aliases, funções etc.).
fonte
Você está tentando misturar código e dados, o que não é uma boa ideia. Em vez disso, defina uma função que use um nome de arquivo (diretório?) Como argumento e a exiba com
less
.fonte