• ベストアンサー

シェルにて連続するコマンドの起動タイミングについて

基本的な事ですみません。 1つのシェルファイルの中に、 コピーするコマンドrcp と シェルを実行するコマンドrshを 記載しようと思います。 ただ、コピーが終わった後にシェルを実行したいのですが、 単純にrcpとrshを連続して記載した場合、 シェル実行時はコピーが終わってるかどうか分からないのでしょうか? コピーが終わってるかどうかを確認する制御等が必要でしょうか? ・・・・・・・・・・・・・・・・・ シェルの中身(現在の予定) rcp ・・・ rsh ・・・ ・・・・・・・・・・・・・・・・・

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

  • ベストアンサー
  • yasuya
  • ベストアンサー率16% (35/216)
回答No.1

シェルは、順次処理を行います。 rcpとrshを同時には行いません。 ですが、rcpがエラーなのか正常終了したのかは戻り値を取って 次のrshを実行するか判断する必要があります。 $? ←直前に実行したコマンドの戻り値変数 if [ $? -ne 0 ]; then echo "エラー" fi こんな感じかな?うろ覚えですまない。

evaag777
質問者

お礼

分かりました。 早急のご回答、ありがとうございました。

その他の回答 (1)

noname#98515
noname#98515
回答No.2

rcpコマンドが終了してからrshコマンドが実行されます。 rcpが異常終了しても処理は継続するのでコピーが正常に終わったかどうかのチェックは行った方がいいと思いますよ。

evaag777
質問者

お礼

ご回答、どうもありがとうございました。

関連するQ&A

  • rshのコマンドの書き方について

    rsh server cd temp rsh server ls など、rshの単体コマンドに関してはすでに通る状況になっています。 しかし、今回やりたいのは 「tempフォルダに降りてきて該当ファイルを削除し、その結果を表示」 などのシェルで書くならば複数行に当たる内容になります。 これも何とかできるでしょうか? rcpでシェルスクリプトを転送して、 rshで向こう側で実行して、 rshでrmする方法も考えたのですが、いまいち鬱陶しいんで スムースに書けたらなと思いました。 とりあえず、test.rshにコマンドをずらっと書いての rsh server -ni <test.rsh ではダメでした。 関係ないでしょうがOSはSorarisです。

  • シェルコマンドについて

    先日自分のPCにやっとLinuxをインストールし、UNIXの勉強に励もうと思って いるのですが、基本的なシェルコマンドがまだよくわからなく苦戦しています。 もし、『シェルコマンド一覧表』みたいなのが、記載されているサイトがあるならば、URLを教えて頂けませんか?  また、効率の良いシェルコマンドの覚え方があったら教えて下さい。  宜しく御願いします!

  • Windows7でrsh,rcpを実行したい

    Windows7 Professional x64だとSUAが使えないのでフリーのrsh等を探してます。 cygwinのsshもよいのですが、手ごろに使えるrsh,rcpの利用をしたいと思ってます。 Linuxマシンのシェルスクリプトの実行やファイルのコピーを行いたいと思ってます。 情報やホームページなどご存じの方ご教授ください。

  • Linuxシェルスクリプトを新しいコマンドにしたい

    Linux初級者です。よろしくお願いします。 OSにFedora Core 10, シェルにtcshを使用しています。 よく使用するコマンドを、まとめて一括で実行するように、 新しいコマンドを作成したくて、次のようなことをしていたのですが (1)ホームディレクトリにmybinというディレクトリを作成してPATHを通す。 (2)newbin1という以下の内容のシェルスクリプトを作成して、~/mybinに置いておく。 ================================== #!/bin/tcsh -f date #実行コマンド例1 echo $PATH #実行コマンド例2 ================================== (3)chmodコマンドでファイルに実行権限を与える。 上記のような方法で、作成したシェルスクリプト(newbin1)を PATHの通ったディレクトリ(~/mybin)に置いて、 > newbin1 とコマンドを呼び出しても、 "newbin1: コマンドが見つかりません" というエラーになってしまいます。 > which newbin1 とすると、ちゃんとファイルのパスが表示されるのですが、 *********************************************************** 自分で作成したシェルスクリプト(newbin1)を、 新しいコマンドとして認識させるにはどのようにすればよいのでしょうか。 また、そもそもシェルスクリプトを新しいコマンドにすることが 不可能だったりするんでしょうか? ************************************************************ 一括で実行したいコマンドが多い場合に、aliasで割り当てるのが大変なので、 できればaliasコマンドは使わずにできる方法を探しています。 基本的な質問かもしれませんが、よろしくお願い致します。

  • Linux間のリモートシェルの実行について

    マシンタイプ:x225 カーネル: 2.4.20-28.7smp OS:Red Hat Linux 7.3 2.96-126)) 上記のLinuxサーバからrshで同じタイプのリモートのLinuxサーバのシェルを起動しようとしましたが正常に起動されません。 状況としては rsh実行時は特にエラーメッセージが出ることもなく、正常に実行されたかのように終了してしまうため、何が悪いのかもわからない状態です。 実行したコマンドとリモート側のシェルの内容は以下の通りです。 rsh server1 /home/test/testrsh.sh <testrsh.sh> #!/bin/ksh time=`date` echo "rsh test $time" >> /home/test/testrsh.log ちなみに rsh server1 date や rsh server1 uname 等のLinuxのコマンドは正常に実行できます。 どこを確認したらよいでしょうか? よろしくお願いします。

  • メッセージを求められるシェルを連続実行

    お世話になります。 現在シェルを作成しています。 既に存在するシェル(100個)を順番に実行するシェルを 作成しようとしています。 しかし、その存在するシェルは実行すると、YES/NO  の確認メッセージに答えないと、進まないようになってい ます。 そのため、確認メッセージに中断されて連続で実行できません。 この確認メッセージで止まらずに連続実行する手段は あるのでしょうか? シェルに詳しい方のご教授ねがいます。 ■既に存在するシェルのメッセージ確認の個所 echo $変数 "実行しますか(確認メッセージ?) [N] => \c" read YN echo " " if [ "$YN" != 'Y' -a "$YN" != 'y' ];then echo ' 実行しません' exit 1 fi

  • リモートホストへのコピー(シェル)

    よろしくお願いします。 異なるサーバ間でファイルのコピーをしたい場合のコマンドとして rcpやftpなどがあると思いますが、それをシェルで書きたい場合、 パスワードの入力の部分はどう書いたらよいのでしょうか。 オンラインマニュアルを読むと英語バージョンしか出てこなくて 「rcpはローカルユーザー名がコピー先のホストに定義されてないと だめ??」みたいな感じに書いてあるようですが なんのことやら意味不明で困っています。 どうぞご指導くださいませ。

  • rshコマンドについて

    rshコマンドを利用してローカルマシンからリモートマシンにあるバッチファイルを実行しようと思います。 以下のようにコマンドを入力して実行したところ、以下のようにエラーが出ました。何か別途定義しておく必要はあるのでしょうか。 rsh リモートホスト名 -l リモートのユーザ名 -n バッチファイル名 ホスト名:接続が拒否されました rsh:can't establish connection

  • シェル内でクロンから起動されたかを判断できる?

    シェル初心者でっす とあるシェル(仮にshell.shとする)があったとき、 shell.shのプログラム内で自身がクロンから実行されたのか それとも手動実行(sh shell.shとコマンドライン入力された)のか 判断させる方法ってありますでしょうか 基本はクロンで実行させますが、 手動で実行させた時に別の動きをさせたいのです (ダメならファイルを分けるつもりですが…) よろしくお願いいたします

  • UNIXシェルのデバッグ

    サーバーを更改したので業務システムを丸ごと 新しいサーバーへコピーしてきました。メニューのシェルが数十個 あるのですが、恐らくそのまま動くとは思うのですが、一応 シェルからシェルへの移動(遷移っていうんでしょうか)くらいは 確認しようと思っています。 そのままシェルを順番に動かす以外の手法は何かありませんでしょうか? sh -xで動かせば詳細な情報をログとして残せますが、シェル内のコマンドも 実行してしまうので時間がかかります。シェル内のコマンドを実行させないで すむ手法があればご教授ください。