- PR -

シェルスクリプトの順序構造について

1
投稿者投稿内容
ヤックル君
会議室デビュー日: 2007/06/13
投稿数: 2
投稿日時: 2007-06-13 14:12
みなさんこんにちは、ヤックル@Linux超初心者です。
今一生懸命シェルスクリプトの学習をしておりますが
シェルコマンドの実行順序が最初から最後まで
保たれる保証があるのか教えていただきたいと思います。

cp   (ファイルのコピー)
rsh -l (リモートシェルの起動)
ls -l  (コピーしたファイルの状態表示)
echo $? (lsコマンドの結果表示)
rm    (コピーしたファイルの削除)

というようにコマンドを
書いた場合、順序構造は必ず上から下へ
流れて実行されますでしょうか?
(1つのコマンドの実行結果を待たずに
次のコマンドを実行してしまうようなことは
ありえますか?)
初心者質問で申し訳ございません。よろしくお願いいたします。
kata
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 69
投稿日時: 2007-06-13 18:45
kataと申します。

引用:

というようにコマンドを
書いた場合、順序構造は必ず上から下へ
流れて実行されますでしょうか?
(1つのコマンドの実行結果を待たずに
次のコマンドを実行してしまうようなことは
ありえますか?)
初心者質問で申し訳ございません。よろしくお願いいたします。




基本的には上から下です。
@コマンド01
Aコマンド02& バックグラウンド
Bコマンド03
このような場合、
Aをバックグラウンドで実行しながら、
Bをフォアグラウンドで実行するといったことが
あるかとは思いますが・・・。
こういう意味では、結果を待たずにということにもなるのかもしれません。

確実なのは、
一つのコマンドを実行した際のリターンコードを拾って
そのコードで処理を振り分ければいいと思います。

#!/bin/sh
RET=0
ret=""
test=Hello
echo $test; ret=$?
#ret=1
if [ "$ret" -eq "$RET" ]; then
echo "OK"
else
echo ""NG
fi

以上、ご参考までに。
ヤックル君
会議室デビュー日: 2007/06/13
投稿数: 2
投稿日時: 2007-06-13 18:53
kataさんこんにちは、返信ありがとうございます。
これで入門書にも記述されていなかったことが
解決いたしました。本当にありがとうございます。
m(_ _)m
1

スキルアップ/キャリアアップ(JOB@IT)