dポイントプレゼントキャンペーン実施中!

Cygwinのbashスクリプトの記述方法について質問です。「*.zip」等のワイルドカード付き文字列を関数引数に渡す時、「*」のまま渡す(展開を抑制する)方法はあるでしょうか?

例えば、次のbashスクリプトコードを実行します。
f(){
echo $1
}
f *.zip
すると、*.zipに合致するファイル名が全て表示されてしまいます。これを「*.zip」と表示させる(*を展開させない)方法を知りたいです。''や""で囲んで試みましたが、ダメでした。

数ヶ月前のCygwinでは展開されなかったのですが、最近のCygwinで挙動が変わってしまいました。そこで対処法がどうしても分からず質問させて頂きました。どうぞ宜しくお願い致します。

環境:WinXP Pro.、Cygwin(sh.exeのバージョンは3.2.33)

A 回答 (3件)

驚異的な方法では


set -f
普通は
f "*.zip"
でいいはずだけど f() の方も
echo "$1"
にしないとダメだったかな?
    • good
    • 1
この回答へのお礼

有難うございます。成功しました。関数内部でも"が必要、という事でした。因みに3.2.39(20)だと何故かこの対処をせずとも期待通りの動きでした。

お礼日時:2008/11/07 12:18

「\*」

    • good
    • 0
この回答へのお礼

有難うございます。が、残念乍ダメでした...。

お礼日時:2008/11/07 12:15

クォティションでくくって「文字列」として渡す



くらいじゃないかな。
    • good
    • 0
この回答へのお礼

有難うございます。が、質問文にも書いた通り既に試行済です。

お礼日時:2008/11/07 12:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!