2016-07-18 18 views
0

kshが構造体をどのように処理しているかを把握しよう!(テキスト)。例えば、Kornシェルのメタキャラクタ:!(何らかのテキスト)とはどういう意味ですか?

$エコー!(こんにちは)(それが列ではなく行に分類されます除いて、lsコマンドの出力と同様)

は、現在のディレクトリ内のファイルのリストを生成します。どのテキストが括弧内にあるかは関係ありませんが、出力は同じです。

誰でもコマンドが実際に行っていることに関して、私を啓発することができますか?ありがとう!

答えて

0

それはハローを除くすべてのファイルをエコーし​​ます。また、ここではいくつかのより詳細な情報ですecho !(*.java)

0

のようなワイルドカードを使用することができます。詳細については、kshのマニュアルページの「ファイル名の生成」を参照してください(bashも同様です)。複数のパターンは、ここを参照してください:https://www.mkssoftware.com/docs/man1/sh.1.asp

A sub-pattern begins with a ?, *, +, @, or ! character followed by a pattern-list 
enclosed in parentheses. Pattern-lists themselves can contain sub-patterns. 
The following list describes valid sub-patterns. 

?(pattern-list) 
     Matches exactly zero or exactly one occurrence of the specified pattern-list. 

*(pattern-list) 
     Matches zero or more occurrences of the specified pattern-list. 

+(pattern-list) 
     Matches one or more occurrences of the specified pattern-list. 

@(pattern-list) 
     Matches exactly one occurrence of the specified pattern-list. 

!(pattern-list) 
     Matches any string that does not match the specified pattern-list. 

だからあなた例えば、シェルは括弧が続く引用符で囲まれていない感嘆符を見た時、それはモードと一致するファイル名になり、それはない、現在のディレクトリ内のファイルを表示しますマッチ "こんにちは"。

関連する問題