10代と話して驚いたこと

vim test.sh

以下スクリプト内のコードですが、
こちらはただの直列処理と認識してよろしいのでしょうか?

aのコマンドが終了せずともbのコマンドが起動し、さらにcのコマンドも起動する

処理の判定自体は各ファイルで行っているため、
ただshスクリプトに関連するバッチファイルをまとめて起動していると認識しているのですが、間違いないでしょうか?

よろしくお願いします

cd /bin
php a.php >> a.log 2>&1
php b.php >> b.log 2>&1
php c.php >> c.log 2>&1

A 回答 (3件)

ただの直列処理に見えます。


a.php 等の中で並列処理をしているならば話は別ですが。

おそらくは & の記号を見て並列処理と勘違いされた様ですが、
シェルスクリプトで使われる記号は、
ちょっとした差で異なる意味になるので気をつけましょう。

>& ← 出力先を変える為の "リダイレクション演算子"
& ← 並列処理にさせる為の "制御演算子"
; または改行文字 ← 直列処理にさせる為の "制御演算子"

参考)
https://manpages.ubuntu.com/manpages/kinetic/ja/ …
    • good
    • 0

直列処理


1列に並んで順番に実行する
前の処理が終わってから実行する

並列処理
列に並ばずにそれぞれ実行する
前の処理の終了を待たずに呼ばれたタイミングで実行する


そのtest.sh(phpを実行しているやつ)は直列処理です。
「aのコマンドが終了せずとも〜」は並列処理の話です。
    • good
    • 0

シェルスクリプトを実行することは、 その内容を1行ずつコマンドラインに入力するのと、ほぼ一緒です。




> aのコマンドが終了せずともbのコマンドが起動し
> さらにcのコマンドも起動する

そのような動作は「並列処理」と言います。
「直列処理と認識してよろしいのでしょうか?」と質問しているのに、「並列処理と認識している」ように見えます
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A