Pertanyaan Bagaimana menjalankan beberapa perintah setelah satu sama lain dengan satu permintaan ke terminal (tanpa menggunakan file)?


Saya bisa (1) menyiapkan file dengan perintah-perintah yang diketik yang dipisahkan oleh end-line, (2) membuatnya bisa dieksekusi, (3) menjalankannya dari manajer sistem-file atau terminal.

Tapi ini konyol karena tidak dapat diulang dan setiap kali-set perintah lainnya.

Dapatkah saya mengetikkan perintah tersebut ke terminal hanya dengan satu permintaan?

Saya tidak tahu karakter end-line untuk terminal - Ctrl, Shift atau Alt dengan Enter tidak berfungsi.


14
2018-02-01 02:49


asal


Pada baris perintah, perintah dapat dipisahkan dengan titik koma. - John1024


Jawaban:


Anda dapat memisahkan perintah dengan && atau ;.

  • && hanya menjalankan perintah berikutnya jika yang sebelumnya keluar dengan status 0 (berhasil):

    command1 && command2 && command3
    
  • ; menjalankan setiap perintah, meskipun sebelumnya keluar dengan status bukan nol:

    command1; command2; command3
    

Anda dapat menggabungkan pemisah ini sesuai keinginan.


15
2018-02-01 02:55



untuk command1 && command2 command2 hanya akan dijalankan jika command1 berhasil. - souravc
Diskusi yang bagus, posting yang relevan / serupa: askubuntu.com/questions/334994/…  stackoverflow.com/questions/13077241/… - gevang
@souravc: Saya membuat pengeditan, terima kasih, saya belajar sesuatu. - MrVaykadji


Jika Anda tertarik untuk mengetikkan setiap perintah pada barisnya sendiri dalam satu permintaan tunggal Anda dapat menggunakan metode berikut:

  • Mulai permintaan Anda (baris pertama) dengan if :; then (ini berarti: jika benar, lalu lakukan) dan tekan Memasukkan; prompt Anda akan berubah sekarang > dan tidak ada yang akan dieksekusi.

  • Ketik perintah Anda, masing-masing diikuti Memasukkan

  • Selesaikan permintaanmu dengan dengan fi (akhir di atas if condition) dan tekan Memasukkan. Sekarang semua perintah Anda akan dieksekusi dalam urutan yang ditentukan.

Contoh:

radu @ Radu: ~ $ if:; kemudian
> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu @ Radu: / $

8
2018-02-01 07:11



if true; then mungkin lebih jelas untuk dibaca jika diinginkan. : mungkin bingung dengan ; pada pandangan pertama. - kiri


Pertama, taruh a { pada jalurnya sendiri.
Kemudian, masukkan perintah Anda.
Kemudian, taruh a } pada baris baru dan tekan Memasukkan. Perintah Anda akan dieksekusi.

Contoh:

{
echo list
echo of
echo commands
echo to run at once
}

yang akan mencetak (sekaligus, tanpa prompt di antaranya):

list
of
commands
to run at once

Sebagai catatan tambahan, { .. } adalah sintaks pengelompokan perintah Bash. Ini sering berguna bersama && atau || ('dan', dan 'atau' masing-masing)


4
2018-02-01 10:34



Apakah itu sama itu if :; then sudah disebutkan namanya? Atau apakah itu sedikit berbeda? - MrVaykadji
@MrVaykadji Ini hasil yang sama, tetapi metode yang berbeda. if : menjalankan tes pada perintah null, yang akan selalu mengembalikan nilai true. { .. } hanya kelompok perintah bersama-sama. Saya pribadi menemukan { .. } lebih mudah diingat. - kiri