2017-02-07 11 views
-1

私はコンソールには新しく、関数の引数であるディレクトリの名前を持つディレクトリを作成する関数を作成しようとしています。これまでの私の関数です:単一引数のBash関数スペース

clidir() { 
    mkdir $1 
} 

私はスペースを使って引数を入力するたびに、2つのディレクトリを作成します。

clidir "New Folder" 

clidir New\ Folder 

をし、彼らの両方が複数のディレクトリを作成します。私が試してみました。

助けを歓迎します。

+0

ほとんどの場合、常にシェルの変数を引用する必要があります。 – Barmar

答えて

2

ダブル引用符あなたの引数は、シェル

clidir() { 
    mkdir "$1" 
} 

man bashページからの抜粋で

シェルはパラメータ展開の結果をスキャン分割

Wordを単語分割を避けるために、コマンド置換、算術展開二重引用符で囲まれていないword s plitting。シェルは、IFSの各文字を区切り文字として扱い、これらの文字をフィールド終端文字として使用して、他の拡張の結果を単語に分割します。 IFSが設定されていない場合、またはその値が正確であれば、既定値、次に、および、以前の展開結果の先頭と末尾のシーケンスは無視され、先頭または末尾にないIFS文字のシーケンスは、言葉。