Idenya adalah menggunakannya sebagai ... sebuah pipa dalam sebuah perintah. Sebagai contoh: katakanlah ada semacam jalan panjang yang harus diketik ulang lagi dan lagi, diikuti oleh pipa dan program kedua, yaitu
"directory1/directory2/direcotry3/file.dat | less -I "
Saya ingin bagian itu disimpan dalam variabel, sehingga bisa digunakan seperti ini:
r="directory1/directory2/direcotry3 \| less -I -p "
$ cat path1/path2/$r <searchterm>
Sebaliknya, saya mengerti
cat: invalid option -- I
Try `cat --help' for more information.
... berarti pipa itu jelas tidak berfungsi.
eval
, biasanya Anda membuat suatu fungsi.Jawaban:
bash tidak sepenuhnya menginterpretasikan ulang baris perintah setelah memperluas variabel. Untuk memaksakan ini, letakkan
eval
di depan:Namun demikian, ada cara yang lebih elegan untuk melakukan ini (alias, fungsi, dll.).
sumber
Anda mencoba menggabungkan kode dan data, yang bukan ide yang baik. Alih-alih, tentukan fungsi yang menggunakan nama file (direktori?) Sebagai argumen, dan menampilkannya
less
.sumber