web-dev-qa-db-ja.com

二重引用符のグロブ内のワイルドカードはありますか?

「標準のBASH」では、二重引用符で囲まれたグロブ内のワイルドカードは使用されますか?例えば:

$ touch abc
$ ls "*abc*"

それでしょうか、それともbashでは機能しませんか?

UbuntuにはPOSIXまたはBASHに準拠していないbashバリアントが付属していると言われました。本当?

6
Matt

短い答え:いいえ

Man bashからの長い回答:

文字を二重引用符で囲むと、$、 `、\を除く、引用符内のすべての文字のリテラル値が保持されます。

そう:

~$ touch sas
~$ ls *a*
sas
~$ ls "*a*"
ls: cannot access *a*: No such file or directory

もちろん、二重引用符とアスタリスクについて話すときは、別の例外があります。パラメーターの展開(つまり、「$ *」)...しかし、それは別の歴史です。

2番目の質問:ダッシュについて質問していますか?ダッシュはスクリプト用の軽量シェルです。 debian、および拡張機能ごとのubuntu(debianベースの場合)では、shにエイリアスされます。 bashに対する主な利点は速度であるため、デフォルトでシステムスクリプトに使用されます。ただし、bashは、デフォルトでユーザーのインタラクティブシェルとして引き続き使用できます。

 ~$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 2011-04-21 11:54 /bin/sh -> dash
6
hmontoliu