私はLinux From Scratchプロジェクトを進めるつもりで、各ステップに進む前に各プログラムとライブラリが正しく作成されていることを確認したいと思います。
(ここでGoogleで検索しましたが、私が見つけることができるほとんどすべては、同じ行で宣言されたvarをエコーしたり、varの出力をls
変数にダンプすることです。どちらも私の場合は適用されません)
別のモードを使用して、次のようなコマンドを複数回入力します。
ls -ld /tools/lib/mypattern* /tools/bin/mypattern*
たとえば、
ls -ld /tools/lib/tcl* /tools/bin/tcl*
同じパターンが再利用されるので、次のように単純化したいと思います。
glob=mypattern* ls -ld /tools/lib/$glob /tools/bin/$glob
しかし、私が実行した場合:
glob=tcl* ls -ld /tools/lib/$glob /tools/bin/$glob
それから私が得るものは次のとおりです。
drwxr-xr-x 2 lfs lfs 4096 Dec 2 03:02 /tools/bin/
drwxr-xr-x 16 lfs lfs 4096 Dec 2 03:02 /tools/lib/
変数が正しく選択されていないことは明らかです。
両方の場所で手動で入力したパターンを使用して実行すると、ls
正しい出力が得られます。
$ ls -ld /tools/lib/tcl* /tools/bin/tcl*
lrwxrwxrwx 1 lfs lfs 8 Dec 2 02:39 /tools/bin/tclsh -> tclsh8.6
-rwxr-xr-x 1 lfs lfs 20512 Dec 2 02:38 /tools/bin/tclsh8.6
drwxr-xr-x 5 lfs lfs 4096 Dec 2 02:38 /tools/lib/tcl8
drwxr-xr-x 6 lfs lfs 4096 Dec 2 02:38 /tools/lib/tcl8.6
-rw-r--r-- 1 lfs lfs 7660 Dec 2 02:38 /tools/lib/tclConfig.sh
-rw-r--r-- 1 lfs lfs 773 Dec 2 02:38 /tools/lib/tclooConfig.sh
実行するたびに一度だけパターンを入力するようにこのコマンドを短縮するにはどうすればよいですか?
答え1
拡張は変数割り当ての前に実行され、コマンドの実行は変数割り当て後に実行されます。使用支柱の拡張代わりに
ls -ld /tools/{lib,bin}/tcl*