• ベストアンサー

シェルスクリプトで、

シェルスクリプトで、 while [ $1 ] ってどういう意味ですか? [ ]の中に条件式が入ってるわけじゃないので意味がよく分かりません。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4856/10272)
回答No.3

[ は test コマンドの別名です。 man bashによると、 > 引き数が 1 個 > 引き数が空でない場合に限り真になります。 他の言語風に書くと、 while "$1" != "" みたいなことでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

while のループのなかに、shift って書いてないですか? while [ $1 ] do  echo $1  shift done のようにすると、引数の数だけ繰り返すループを作れます。

全文を見る
すると、全ての回答が全文表示されます。
  • kachansa
  • ベストアンサー率44% (30/67)
回答No.2

$1がTrue状態で、無限ループさせて、そのブロック内の 条件判定でbreakでブロックを抜けるという処理をしているのでは ないかと思います。 []については、 http://shellscript.sunone.me/while.html

全文を見る
すると、全ての回答が全文表示されます。
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

test コマンドの説明見れば分かりますが $1 が文字列として有効なら真ですが、"" で括った方が安全です。 while [ "$1" ]

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • シェルスクリプトの作り方を教えてください。

    シェルスクリプトを作って、システムのフルバックアップを行いたいのですが シェルスクリプトについて無知なので、何からどう書いていけば良いのかわかりません。 コマンドについては調べてみました。mt、fbackupを使って行おうと思います。 でも、テープがちゃんと入っているかどうか、ライトプロテクトされていないか等で条件分岐させて、その都度質問を表示。 その回答によって処理を分けたいのです。 mt等は戻り値が返ってくると思うんですけど、それを使ってどーやって条件分岐の スプリクトを書いたら良いのか。。。 ちょっと理解しきれてなく、わかりづらい質問になってしまいましたが。。 教えてください。お願いします。

  • シェルスクリプトで困っています 2

    度々申し訳ございません。 現在、Linuxマシン1からLinuxマシン2へTelnetでログインし、Linuxマシン2上にあるシェルスクリプト(/bin/sh)を実行し、Linuxマシン2上のプログラムを実行した後、Linuxマシン2からログアウトするシェルスクリプトを作成中です。 その、Linuxマシン2からログアウトする際に、 "exit"を記述しているのですが、その"exit"がTelnetログアウトの意味で実行されず、シェルスクリプトを終了するの意味で実行されていて困っています。 どなたか上手くTelnetからログアウトできるようにシェルスクリプトを組む方法をご存知ではないでしょうか?もし判りましたらご教授下さい。 よろしくお願い致します。

  • 【Linux】シェルスクリプトについて

    Linuxの学習をしています。 シェルスクリプトを使って、1~50までの整数の和を求めるという問題があるのですが解けません…。 とても簡単な問題だとは思いますが、どなたか教えて頂けますでしょうか? 因みに、for文またはwhile文を使うようにという指示があり、標準シェルを用いてます。 宜しくお願い致します。

  • シェルスクリプト

    よく回りの人が「シェルを叩く」と表現しているのですが 「シェルスクリプト」の中にJavaScriptは含まれているのでしょうか? とてもかけ離れてるイメージなのですが。 以下引用 複数の処理(コマンド)をまとめて行なうことのできるスクリプトである。スクリプトとは、機械語への変換作業を省略した簡易プログラムのことで、代表的なものにはPerlやVBScript、JavaScriptなどがある。また、シェルとは与えられた指示をOSの中核部分に伝えるソフトウェアのことである。

  • シェルスクリプトの切り替え?

    シェルには種類がありユーザーはそれを切り替えることによって好みのシェルを自由に選択することが出来る。 というのはわかりました。 が、シェルスクリプトを記述して実行する場合はどうなんでしょう。 bornシェルで記述したシェルスクリプトをcshから実行できるのでしょうか。 実行者とスクリプト記述者が同じシェル環境で操作しないといけないのかと思い質問しています。 ひょっとして意味のわからない質問かも知れませんがお願いします。

  • シェルスクリプトについて

    初心者なので質問の意味が分からなかったら申し訳ありません。 シェルスクリプトからデータを送信したいのですが、 postでデータを送信するやり方はあるのでしょうか?

  • シェルスクリプトのBシェル(Bourne)に出てくる、$0,$1,$2

    シェルスクリプトのBシェル(Bourne)に出てくる、$0,$1,$2...のような位置パラメタや、$?,$$,$!,$-のような特殊変数がありますが、これはPerlやRubyもあるようですが、意味や効果、やり方等は同じでしょうか。 当方はPHP,JavaScriptしか触れていませんし、PHPやJavaScriptは、そのような位置パラメタや特殊変数は見当たりませんでした…。 つまり、PerlやRubyはUNIXのコマンドから誕生したスクリプト言語ということでしょうか。 こういった位置パラメタや特殊変数はPerlやRuby以外に他の言語にもありますでしょうか。PythonとかCとかJavaとか…。 また、Bシェルを学んでいる途中ですが、シェルスクリプトの中にはbourne以外にもbashやC Shell,zsh,Perlがありますが、何故Perlが入っているのでしょうか。 Perlをやっている方は別途シェルスクリプトをやる必要はないということでしょうか。

  • シェルスクリプトの引数

    シェルスクリプトの引数 linuxのシェルスクリプトの引数に関しての質問です。引数の数が一桁くらいならいいのですが、200万個の引数を使うとなると、いちいち引数を手で書くわけにはいきません。引数をテキストから直接読み込むことはできませんか?

  • シェルスクリプトで

    いくつかのテキストファイルがあって, その中で内容が重複するもの(ファイル名は違うが中身は同じ)ファイルをみつけるシェルスクリプトが書きたいのですが, どのように書けばよいでしょうか. というかそのように書くことは可能でしょうか. ぶしつけですいませんが,回答お願いいたします.

  • シェルスクリプトについて

    とあるUNIXサーバが1台あるとします。 でそのマシン上の管理プログラムが同一マシン上にある 「シェルスクリプト(bash)」をキックするとします。 となるとそのシェルスクリプトの実行者(?)は Unixにログオンしているユーザーになるのでしょうか?。 目的としてはそのログインしているユーザーの環境変数 をシェルから参照したいのですが・・ 考え方がWindowsなもので。。すみませんが よろしくお願いします。

CD-2uでCD作成wmaに出来るか?
このQ&Aのポイント
  • CD-2uは、電子楽器メーカーローランド製のCD作成機器です。wma形式の音楽ファイルをCDに書き込むことが可能です。
  • ボス製品と同様に、CD-2uでもwma形式の音楽ファイルを使用してCDを作成することができます。
  • CD-2uは、使いやすさと高品質な録音機能を備えており、専門的な知識や技術がなくても簡単にCD作成ができます。
回答を見る