Apa yang melewati parameter -xe ke / bin / bash lakukan

59

Tepat seperti yang dikatakan judulnya. Saya tidak beruntung menemukan dokumentasi yang tepat untuk melihat apa yang dilakukan -xe dalam use case berikut:

#!/bin/bash -xe

apa yang dilakukan parameter tersebut dan di mana parameter tersebut didokumentasikan?

imajinatif
sumber
Apakah Anda berbicara tentang parameter yang diteruskan ke biner BASH, atau apakah Anda berbicara tentang fungsi dan parameter dalam bahasa skrip BASH?
Richard Keller
Mengacu pada parameter yang diteruskan ke biner BASH, seperti: #! / Bin / bash -xe
imajinatif

Jawaban:

56

Jika Anda membaca halaman manual untuk bashAnda akan menemukan yang berikut di bagian atas OPTIONSbagian ini:

 Semua opsi shell karakter tunggal didokumentasikan dalam
 deskripsi perintah set builtin dapat digunakan sebagai opsi saat
 shell dipanggil. Selain itu, bash menginterpretasikan opsi berikut
 ketika dipanggil ...

Dan jika Anda membaca dokumentasi untuk setperintah nanti di halaman manual, Anda akan menemukan:

 -e Segera keluar jika saluran pipa (yang mungkin terdiri dari a
 perintah sederhana tunggal), perintah subkulit yang dilampirkan dalam tanda kurung,
 atau salah satu perintah yang dijalankan sebagai bagian dari daftar perintah yang dilampirkan oleh
 kurung kurawal (lihat SHELL GRAMMAR di atas) keluar dengan status bukan nol. 

 -x Setelah memperluas setiap perintah sederhana, untuk perintah, huruf besar-kecil
 perintah, pilih perintah, atau hitung untuk perintah, tampilan
 nilai diperluas dari PS4, diikuti oleh perintah dan
 argumen yang diperluas atau daftar kata yang terkait.

Dengan kata lain, -ebuat shell segera keluar setiap kali sesuatu mengembalikan kesalahan (ini sering digunakan dalam skrip shell sebagai mekanisme yang gagal), dan -xmemungkinkan eksekusi skrip secara verbal sehingga Anda dapat melihat apa yang terjadi.

larsks
sumber
10

Ketik yang berikut di konsol Anda untuk mendapatkan penjelasan tentang argumen BASH:

bash -c "help set"

Untuk menjawab pertanyaan Anda:

-e Keluar segera jika perintah keluar dengan status tidak nol.

-x Cetak perintah dan argumennya saat dieksekusi.

Richard Keller
sumber
4

Dari halaman manual :

Semua opsi shell karakter tunggal yang didokumentasikan dalam deskripsi perintah set builtin dapat digunakan sebagai opsi saat shell dipanggil.

Jadi lihatlah set builtin .

Mgorven
sumber
2

Apakah Anda memikirkan hal-hal di mana Anda mengatur -x set -e set -...? berlari help setmemberi mereka.

menjadi paling lucu
sumber
1
Saya memikirkan parameter yang digunakan seperti berikut: #! / Bin / bash -xe
imajinatif
0

Di mana tempat terbaik untuk membaca dokumentasi tentang parameter apa yang diteruskan ke bash seperti -x dan -e? Saya mencoba pria 1 bash, tetapi tampaknya tidak tercakup di sana.

Baca bagian PILIHAN dari halaman manual basj.

fpmurphy
sumber
0

Saya menggunakan Bash Reference Manual yang sangat baik sebagai dokumentasi satu atap untuk bahasa Bash. Saya menemukan ini lebih berguna daripada halaman manual. Bagian yang relevan untuk Anda (deskripsi sakelar -e, -x dapat ditemukan di sini: set builtin

mzet
sumber