OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

unixのperlで

  • 暇なときにでも
  • 質問No.178947
  • 閲覧数51
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 77% (530/685)

UNIXのPerlでは引数は@ARGVに入ると思うのですが、

a.pl *.c

"*.c" という引数を入れるとファイルが展開されそのフォルダの中の "12-1.c" とか "12-2.c" とかいう引数が、配列に1つずつ入ってきました。
引数の文字列を何の修正もなしに(できればスペースも)受け取る方法はないですか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

a.pl "*.c"

といった具合に引数文字列を二重引用符で括ってみて下さい。
お礼コメント
haporun

お礼率 77% (530/685)

んんん、呼び出し側で制御しなければダメですか?
できれば、呼び出し側では正規表現を記述して、内部でそれに該当するファイルを操作したいと思っているのですが・・・。
投稿日時 - 2001-12-04 14:40:21
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル7

ベストアンサー率 68% (13/19)

*.c とかは、shell が展開しちゃうので、お使いの shell の設定で展開しないようにしちゃえばいいのでは。 bash 2以上なら、braceexpand (スペル自信なし)というオプションがあったような。。。 今ざっと、bash のマニュアルを読んでみたら、展開するオプションはあったけど、展開しないオプションは見つからなかった。 多分あるのだろう。 ...続きを読む
*.c とかは、shell が展開しちゃうので、お使いの shell の設定で展開しないようにしちゃえばいいのでは。

bash 2以上なら、braceexpand (スペル自信なし)というオプションがあったような。。。

今ざっと、bash のマニュアルを読んでみたら、展開するオプションはあったけど、展開しないオプションは見つからなかった。
多分あるのだろう。
お礼コメント
haporun

お礼率 77% (530/685)

使っているのはtcshで、管理者ではないので、ユーザー個別の設定でなんとかできれば良いのですが・・・。
投稿日時 - 2001-12-05 15:25:43


  • 回答No.3
レベル13

ベストアンサー率 37% (419/1115)

引数のワイルドカードの展開はスクリプトに渡る前に行われますので、スクリプト内部での制御は無理だと思います。 tujigeさんの仰るような方法があれば出来ると思いますが、それとて別な環境で実行された場合は無効になってしまいます。 ですので、スクリプト自身での制御は不可能、というのが私の意見です。 御参考までに。 ...続きを読む
引数のワイルドカードの展開はスクリプトに渡る前に行われますので、スクリプト内部での制御は無理だと思います。
tujigeさんの仰るような方法があれば出来ると思いますが、それとて別な環境で実行された場合は無効になってしまいます。
ですので、スクリプト自身での制御は不可能、というのが私の意見です。
御参考までに。
お礼コメント
haporun

お礼率 77% (530/685)

わかりました。
使う側でダブルクォートで囲む方法にします。
投稿日時 - 2001-12-05 15:26:37
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ