Perintah berurutan


13

Apakah saya benar menganggap itu ketika ; bergabung dengan dua perintah pada satu baris, Bash selalu menunggu sampai perintah pertama keluar sebelum menjalankan perintah kedua? Dan demikian pula, dalam skrip shell yang berisi dua perintah berbeda di baris yang berbeda, Bash selalu menunggu hingga perintah di baris pertama keluar sebelum menjalankan perintah di baris kedua?

Jika demikian, adakah cara untuk mengeksekusi dua perintah dalam satu baris atau dalam sebuah skrip, sehingga perintah kedua tidak menunggu sampai perintah pertama selesai?

Selain itu, apakah baris berbeda dalam skrip shell sama dengan baris terpisah yang digabungkan oleh ;atau &&?


Jawaban:


25

Anda benar, perintah dalam skrip dieksekusi secara berurutan secara default.

Anda dapat menjalankan perintah di latar belakang dengan suffix dengan &(satu ampersand).

Perintah pada baris terpisah sama dengan perintah yang digabungkan ;secara default. Jika Anda memberi tahu shell Anda untuk membatalkan kode keluar yang tidak nol ( set -e), maka skrip akan mengeksekusi seolah-olah semua perintah digabungkan &&.


2

Untuk menjawab pertanyaan kedua, Anda dapat menggunakan &untuk meluncurkan perintah di latar belakang dan melanjutkan dengan skrip tanpa menunggu sampai selesai.

commandA & commandB

Jika Anda menjalankan ini di terminal interaktif (bukan skrip), Anda dapat menggunakan fguntuk membawa perintah latar belakang ke fokus, atau jobsuntuk melihat daftar tugas latar belakang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.