国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
Stops Script on First Error
Exceptions and Gotchas
When to Use It (and When Not To)
Rumah Tutorial sistem LINUX Apa yang ditetapkan dalam skrip shell?

Apa yang ditetapkan dalam skrip shell?

Jul 02, 2025 am 12:43 AM

在Shell腳本中,set -e的作用是讓腳本在任意命令執(zhí)行失?。ǚ祷胤橇銧顟B(tài)碼)時立即停止運行。默認(rèn)情況下,Bash腳本會繼續(xù)執(zhí)行后續(xù)命令,即使某個命令已失敗,這可能導(dǎo)致錯誤累積或產(chǎn)生意外結(jié)果。使用set -e后,腳本會在第一個失敗的命令處終止,例如:腳本執(zhí)行到false命令后將停止,后續(xù)命令不會運行。然而,set -e并非完全可靠,存在一些例外情況:1. if條件中的命令不會觸發(fā)退出;2. 后接|| true的命令不會導(dǎo)致腳本退出;3. 管道命令中只有最后一個命令失敗才會觸發(fā)退出。為增強腳本健壯性,可結(jié)合set -o pipefail確保管道中任一命令失敗即退出。適合在自動化部署或安裝腳本中使用,避免錯誤擴(kuò)散;而在交互式腳本或需手動處理錯誤的場景中應(yīng)避免使用,建議顯式檢查返回碼進(jìn)行處理。

What does set -e do in a shell script?

In a shell script, set -e tells the shell to stop executing the script immediately if any command exits with an error (i.e., returns a non-zero status). This is useful for making scripts safer by preventing them from continuing when something goes wrong.


Stops Script on First Error

By default, Bash scripts continue running even if one of the commands fails. That can lead to unexpected results or compound errors.

With set -e, as soon as a command fails, the script stops. For example:

#!/bin/bash
set -e

echo "Starting"
false
echo "This line won't run"

The output would be:

Starting

And then the script exits after false causes an error.

Note: Some commands might still continue depending on context — more on that in the next section.


Exceptions and Gotchas

Just because you use set -e doesn’t mean every failed command will stop the script. There are a few important exceptions:

  • Commands in if conditions don’t trigger set -e. That’s intentional — you're usually checking whether something failed.
  • Commands followed by || true won’t cause the script to exit either.
  • Pipelines like command1 | command2 only trigger set -e if the last command in the pipeline fails.

So, while set -e helps catch many issues, it's not foolproof. You still need to be careful about how you structure your commands.

If you want stricter behavior, consider combining it with other options like set -o pipefail to make pipelines fail the script if any part fails.


When to Use It (and When Not To)

Use set -e when writing automation scripts where errors should stop execution — like deployment or setup scripts.

Avoid using it in interactive scripts or cases where you expect some failures and want to handle them manually. In those situations, it's better to check return codes explicitly:

some_command
if [ $? -ne 0 ]; then
  echo "Something went wrong, but I'll handle it here."
fi

Also, keep in mind that not all shells behave the same way with set -e, so if portability matters, test carefully.


It’s a handy flag but not magic — basically just makes scripts bail faster when things go south.

Atas ialah kandungan terperinci Apa yang ditetapkan dalam skrip shell?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
Bagaimana cara menyelesaikan masalah DNS pada mesin Linux? Bagaimana cara menyelesaikan masalah DNS pada mesin Linux? Jul 07, 2025 am 12:35 AM

Apabila menghadapi masalah DNS, mula -mula semak fail /etc/resolv.conf untuk melihat sama ada nameserver yang betul dikonfigurasi; Kedua, anda boleh menambah DNS awam secara manual seperti 8.8.8.8 untuk ujian; Kemudian gunakan arahan NSLOOKUP dan Dig untuk mengesahkan sama ada resolusi DNS adalah normal. Sekiranya alat ini tidak dipasang, anda boleh memasang pakej DNSutils atau Bind-UTILS terlebih dahulu; Kemudian periksa status perkhidmatan yang diselesaikan SystemD dan fail konfigurasi /etc/systemd/resolved.conf, dan tetapkan DNS dan fallbackDNS seperti yang diperlukan dan mulakan semula perkhidmatan; Akhirnya periksa status antara muka rangkaian dan peraturan firewall, sahkan bahawa port 53 tidak

Pasang guacamole untuk akses jauh Linux/Windows di Ubuntu Pasang guacamole untuk akses jauh Linux/Windows di Ubuntu Jul 08, 2025 am 09:58 AM

Sebagai pentadbir sistem, anda mungkin mendapati diri anda (hari ini atau pada masa akan datang) bekerja di persekitaran di mana Windows dan Linux wujud bersama. Bukan rahsia lagi bahawa beberapa syarikat besar lebih suka (atau harus) menjalankan beberapa perkhidmatan pengeluaran mereka di Windows Boxes

Bagaimana untuk mencari alamat IP peribadi dan awam saya di Linux? Bagaimana untuk mencari alamat IP peribadi dan awam saya di Linux? Jul 09, 2025 am 12:37 AM

Dalam sistem Linux, 1. Gunakan arahan IPA atau HostName-I untuk melihat IP peribadi; 2. Gunakan curlifconfig.me atau curlipinfo.io/ip untuk mendapatkan ip awam; 3. Versi desktop boleh melihat IP peribadi melalui tetapan sistem, dan penyemak imbas boleh mengakses laman web tertentu untuk melihat IP awam; 4. Perintah umum boleh ditetapkan sebagai alias untuk panggilan cepat. Kaedah ini mudah dan praktikal, sesuai untuk keperluan tontonan IP dalam senario yang berbeza.

Cara Memasang NodeJS 14/16 & NPM di Rocky Linux 8 Cara Memasang NodeJS 14/16 & NPM di Rocky Linux 8 Jul 13, 2025 am 09:09 AM

Dibina pada enjin V8 Chrome, Node.js adalah persekitaran runtime JavaScript yang didorong oleh acara terbuka yang dibuat untuk membina aplikasi berskala dan API backend. Nodejs dikenali sebagai ringan dan cekap kerana model I/O yang tidak menyekat dan

Keperluan sistem untuk memasang linux Keperluan sistem untuk memasang linux Jul 20, 2025 am 03:49 AM

LinuxcanrunonmodesthardwareWithSpecificMinimumRequirements.a1ghzprocessor (x86orx86_64) disediakan, withadual-corecpurecommended.r Amshouldbeatleast512mbforcommand-lineuseor2gbfordesktopenvironments.diskspacerequiresaminimumof5-10gb, walaupun25gbisbetterforad

Cara Memasang MySQL 8.0 di Rocky Linux dan Almalinux Cara Memasang MySQL 8.0 di Rocky Linux dan Almalinux Jul 12, 2025 am 09:21 AM

Ditulis dalam C, MySQL adalah sumber terbuka, silang platform, dan salah satu sistem pengurusan pangkalan data relasi yang paling banyak digunakan (RDMS). Ini adalah bahagian penting dalam timbunan lampu dan merupakan sistem pengurusan pangkalan data yang popular dalam hosting web, analisis data,

Ubuntu 25.04 'Puffin Plucky': Lonjakan berani ke hadapan dengan Gnome 48 dan HDR Brilliance Ubuntu 25.04 'Puffin Plucky': Lonjakan berani ke hadapan dengan Gnome 48 dan HDR Brilliance Jul 12, 2025 am 09:28 AM

Ubuntu telah lama berdiri sebagai benteng aksesibiliti, menggilap, dan kuasa dalam ekosistem Linux. Dengan ketibaan Ubuntu 25.04, yang dinamakan "Puffin Plucky", kanonik sekali lagi menunjukkan komitmennya untuk menyampaikan

Cara Memasang MongoDB di Rocky Linux dan Almalinux Cara Memasang MongoDB di Rocky Linux dan Almalinux Jul 12, 2025 am 09:29 AM

MongoDB adalah pangkalan data NoSQL yang berorientasikan dokumen yang sangat berskala tinggi yang dibina untuk menguruskan trafik yang berat dan sejumlah besar data. Tidak seperti pangkalan data SQL tradisional yang menyimpan data dalam baris dan lajur dalam jadual, data struktur MongoDB dalam j

See all articles