Saya dapat (1) menyiapkan file dengan perintah yang diketik yang dipisahkan oleh end-line, (2) membuatnya dapat dieksekusi, (3) menjalankannya dari manajer sistem file atau terminal.
Tapi ini konyol untuk set perintah yang tidak dapat diulang dan setiap waktu.
Bisakah saya mengetik perintah-perintah itu ke terminal dalam satu permintaan saja?
Saya tidak tahu karakter garis akhir untuk terminal - Ctrl, Shift atau Alt dengan Enter tidak berfungsi.
gnome-terminal
command-line
Esamo
sumber
sumber
Jawaban:
Anda dapat memisahkan perintah dengan
&&
atau;
.&&
hanya menjalankan perintah berikutnya jika yang sebelumnya keluar dengan status 0 (berhasil):;
menjalankan setiap perintah, bahkan jika yang sebelumnya keluar dengan status bukan nol:Anda dapat menggabungkan pemisah ini sesuai keinginan.
sumber
command1 && command2
command2 hanya akan dieksekusi jika command1 berhasil.sudo apt upgrade
dansudo systemctl reboot
, apakah Anda perlu menambahkan 'sudo' dua kali, atau akankah 'mengingat' sudo untuk perintah kedua?Jika Anda tertarik untuk mengetik setiap perintah pada barisnya sendiri dalam satu permintaan tunggal, Anda dapat menggunakan metode berikut:
Mulai permintaan Anda (baris pertama) dengan
if :; then
(artinya: jika benar, maka lakukan) dan tekan Enter; prompt Anda akan berubah sekarang>
dan tidak ada yang akan dieksekusi.Ketik perintah Anda, masing-masing diikuti oleh Enter
Selesaikan permintaan Anda dengan
fi
(akhir dariif
kondisi di atas ) dan tekan Enter. Sekarang semua perintah Anda akan dieksekusi dalam urutan yang diberikan.Contoh:
sumber
if true; then
mungkin lebih jelas untuk dibaca jika diinginkan.:
mungkin bingung dengan;
pandangan sekilas.Pertama, letakkan
{
di barisnya sendiri.Kemudian, masukkan perintah Anda.
Kemudian, letakkan
}
di baris baru dan tekan Enter. Perintah Anda akan dieksekusi.Contoh:
yang akan mencetak (sekaligus, tanpa prompt di antaranya):
Sebagai catatan,
{ .. }
adalah sintaks pengelompokan perintah Bash. Ini sering berguna dalam hubungannya dengan&&
atau||
(masing-masing 'dan', dan 'atau')sumber
if :; then
sudah disebutkan? Atau sedikit berbeda?if :
menjalankan tes pada perintah nol, yang akan selalu mengembalikan true.{ .. }
hanya kelompokkan perintah bersama. Saya pribadi{ .. }
lebih mudah diingat.