- - PR -
Shellスクリプト入門
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-12-09 17:02
お世話になります。ただいまShellスクリプト入門中です。
-------------------------- #!/bin/sh command1 && command2 -------------------------- の場合、command1が成功したらcommand2を実行する。 -------------------------- #!/bin/sh command1 || command3 -------------------------- の場合、command1が失敗したらcommand3を実行する。 ですが、command1が成功したらcommand2を実行して失敗したらcommand3を実行したいと思います。 どのように書けばよろしいのでしょうか。是非ご教授願います。 |
|
投稿日時: 2002-12-09 17:24
こんにちは。
Shell スクリプトにも 他のコンピュター言語同様に if 文が あります。それを使えば okumura さんが望んでる事が出来ます。 あとは、man をみるとか ネットを検索して調べて下さい ![]() |
|
投稿日時: 2002-12-09 17:32
ご返答ありがとうございます。
if [ command1が成功 ] then command2 else command3 fi とする場合、「command1が成功した」 という状態を表現するにはどうすればよいのでしょうか。。 |
|
投稿日時: 2002-12-09 17:34
こんにちは。
「終了ステータス」って調べたら出てくると思います。 失礼しました。 |
|
投稿日時: 2002-12-09 18:33
useraddコマンドが成功したら・・・という例で行ってみなした。
---------------------------------- if useradd -G mygrp1 user01 then command2 else command3 fi ---------------------------------- これで成功しました。ありがとうございました。 また、実際に終了ステータスを標準出力に表示してみたいと思うのですが、うまくいきませんでした。どうすれば表示されますでしょうか。 また、コマンドの終了ステータスを使用してコマンドの失敗や成功後の処理を書くときに、だいたい皆様もこのようにされておられるのでしょうか。「いやいや、普通そうはしないよ。」というご意見のある方は是非ご返信ください。よろしくお願いいたします。 |
|
投稿日時: 2002-12-09 18:47
最後に実行したコマンドの終了コードしか保持していないので、
コマンドを実行した直後に見ないと上書きされてしまいます。 試してみたところ、何も気にせず echo $? で取れるようです。 一応、各シェルごとの変数名?を書いておきます。 sh echo $? csh系 echo $status bash echo $PIPESTATUS |
|
投稿日時: 2002-12-09 19:18
なるほど。解決いたしました。たくさんのキーワードをありがとうございました。これからもよろしくお願いいたします。
|
1