Re: echo * の実行結果について

この質問の投稿一覧へ

なし Re: echo * の実行結果について

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-7-6 17:37
ktkyz  一人前   投稿数: 22
modukuさん

> なぜ、文字列のワイルドカードに過ぎない「*」が、カレントディレクトリの一覧に化けるのでしょうか?
メタキャラクタというのは、シェルによって文字列(ファイル又はディレクトリ)の一覧
(*の場合はカレントディレクトリのすべてのファイル・ディレクトリ)に展開されてからコマンドに渡されます。
どんな場合も同じように扱われます。扱いが変わる(化ける)ことはありません。

例えば、カレントディレクトリ(実機環境にて検証)に
[root@mimiken bk_test]# ls -l
合計 0
-rw-r--r--. 1 root root 0 7月 6 16:52 2013 AAAA
-rw-r--r--. 1 root root 0 7月 6 16:52 2013 BBBB
-rw-r--r--. 1 root root 0 7月 6 16:52 2013 CCCC
3つのファイルがあった場合を考えます。

「*」= AAAA BBBB CCCC
と展開されます。
展開された後に、コマンドに渡されます。

例えば、下に示す2つのlsコマンドは、
「ls AAAA BBBB CCCC」=「ls *」
は同じ扱いになります。

[root@mimiken bk_test]#
[root@mimiken bk_test]# echo *
AAAA BBBB CCCC
[root@mimiken bk_test]#
[root@mimiken bk_test]# ls AAAA BBBB CCCC
AAAA BBBB CCCC
[root@mimiken bk_test]# ls *
AAAA BBBB CCCC
[root@mimiken bk_test]#

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.