Fünf wenig bekannte moderne Bash-Skripttechniken
Jun 26, 2023 pm 08:36 PMBash命令語(yǔ)言常被程序員用來(lái)編寫(xiě)Shell腳本,以實(shí)現(xiàn)手動(dòng)任務(wù)的自動(dòng)化。他們會(huì)編寫(xiě)B(tài)ash腳本來(lái)自動(dòng)化各種配置、文件操作、構(gòu)建結(jié)果生成和與DevOps相關(guān)的活動(dòng)。幾乎所有類(lèi)Unix或基于Unix的操作系統(tǒng)都為用戶(hù)提供預(yù)安裝的Bash解釋器,因此我們可以使用Bash編寫(xiě)更具可移植性的自動(dòng)化腳本。
正如我們已經(jīng)知道的那樣,Bash腳本編寫(xiě)是指使用Bash命令語(yǔ)言的語(yǔ)法、內(nèi)置Bash命令和核心操作系統(tǒng)CLI程序(如GNU核心工具)編寫(xiě)一系列命令。一般而言,遵循傳統(tǒng)的Bash腳本會(huì)執(zhí)行一些命令并在終端上輸出純文本。
我們可以使用幾個(gè)特別的理念來(lái)使我們的 Bash 腳本更加適用于未來(lái)且更加用戶(hù)友好。使用一些不太常見(jiàn)的現(xiàn)代Bash腳本編寫(xiě)技巧,可以令您的自動(dòng)化腳本更具現(xiàn)代感,涵蓋以下概念。
顯示動(dòng)畫(huà)以指示長(zhǎng)時(shí)間運(yùn)行的任務(wù)
在某些情況下,我們需要從Bash腳本中執(zhí)行長(zhǎng)時(shí)間運(yùn)行的命令。有幾種方法可以指示長(zhǎng)時(shí)間運(yùn)行的任務(wù)。顯示帶有三個(gè)點(diǎn)的消息(也稱(chēng)為省略號(hào)),最簡(jiǎn)單和最容易的方法是使用echo命令。然而,這種技術(shù)所產(chǎn)生的信息是靜態(tài)的,缺乏互動(dòng)性和用戶(hù)友好性,對(duì)于開(kāi)發(fā)人員也是如此。
輕松展示ASCII動(dòng)畫(huà)只需使用核心Unix操作系統(tǒng)命令和Bash內(nèi)置命令即可??聪旅孢@個(gè)只有兩個(gè)動(dòng)畫(huà)幀的簡(jiǎn)單動(dòng)畫(huà)示例:
#!/bin/bash# Linux迷 www.linuxmi.comwhile true;do# Frame #1printf "\r< Loading..." sleep 0.5# Frame #2 printf "\r> Loading..." sleep 0.5 done
上面的Bash腳本在終端上顯示一個(gè)無(wú)盡的兩幀動(dòng)畫(huà)。printf語(yǔ)句使用\r轉(zhuǎn)義字符來(lái)重置當(dāng)前行的終端光標(biāo)。上面的腳本呈現(xiàn)了以下基于文本的動(dòng)畫(huà):
一個(gè)簡(jiǎn)單的兩幀文本動(dòng)畫(huà)
我們可以在動(dòng)畫(huà)中添加更多幀,并使用以下Bash腳本在特定耗時(shí)任務(wù)完成之前一直顯示動(dòng)畫(huà)。
#!/bin/bash# Linux迷 www.linuxmi.comsleep 5 &pid=$!frames="/ | \\ -"while kill -0 $pid 2&>1 > /dev/null;dofor frame in $frames;doprintf "\r$frame Loading..."sleep 0.5donedoneprintf "\n"
該腳本將顯示一個(gè)基于文本的旋轉(zhuǎn)器動(dòng)畫(huà),直到經(jīng)過(guò)5秒的sleep命令完成執(zhí)行。同樣地,我們可以使用旋轉(zhuǎn)器動(dòng)畫(huà)來(lái)代替靜態(tài)消息,在執(zhí)行任何需要耗時(shí)的任務(wù)時(shí)顯示。預(yù)覽如下。
一個(gè)帶有旋轉(zhuǎn)器文本動(dòng)畫(huà)的Bash腳本,作者的截圖 這些基于文本的動(dòng)畫(huà)使命令行程序更加用戶(hù)友好和互動(dòng),因此大多數(shù)現(xiàn)代命令行程序都顯示這些ASCII動(dòng)畫(huà)。現(xiàn)在你知道如何通過(guò)改變幀字符列表,為你的Bash腳本添加動(dòng)畫(huà)效果。
從Bash顯示本地GUI通知
常用的開(kāi)發(fā)人員通常會(huì)使用Bash腳本和命令行程序來(lái)提供工具的終端界面。例如,F(xiàn)lutter框架為開(kāi)發(fā)人員提供了flutter命令行程序,用于管理Flutter應(yīng)用程序和配置Flutter應(yīng)用程序開(kāi)發(fā)環(huán)境。假設(shè)你正在開(kāi)發(fā)一個(gè)耗時(shí)的命令行腳本。在用戶(hù)不查看終端輸出時(shí),如何顯示重要消息?
GUI通知在所有Unix類(lèi)和基于Unix的操作系統(tǒng)中都可以使用特定的命令來(lái)顯示。我們可以從Bash腳本中調(diào)用這些命令來(lái)顯示本地通知。比如,在以GNU/Linux為基礎(chǔ)的操作系統(tǒng)上,你可以使用notify-send命令,示例如下:。
#!/bin/bash# Linux迷 www.linuxmi.comsleep 10notify-send "notify.sh" "Task #1 已成功完成 www.linuxmi.com"
一些GNU/Linux發(fā)行版通常會(huì)預(yù)裝notify-send工具的版本。上面的Bash腳本在十秒后顯示了一個(gè)本地通知。預(yù)覽如下:
在Ubuntu上的本地通知截圖
macOS用戶(hù)可以通過(guò)在Bash中執(zhí)行AppleScript解釋器來(lái)顯示本地通知,如下所示:
#!/bin/bashsleep 10osascript -e "display notification \"Task #1 www.linuxmi.com 已成功完成\" with title \"notify.sh\""
在Bash腳本中的多進(jìn)程處理非常有助于通過(guò)長(zhǎng)時(shí)間運(yùn)行的腳本或永久運(yùn)行的后臺(tái)腳本向用戶(hù)通知重要事件。
在Bash腳本中的多進(jìn)程處理
通常,程序員使用Bash腳本按順序運(yùn)行命令。所以,Bash解釋器會(huì)一個(gè)接一個(gè)地運(yùn)行每個(gè)語(yǔ)句,直到到達(dá)源文件的結(jié)尾或遇到一個(gè)exit語(yǔ)句。然而,我們可以改變這種順序執(zhí)行的方式,實(shí)現(xiàn)并行執(zhí)行以加快自動(dòng)化腳本的速度。
我們可以將整個(gè) Bash 腳本分成幾個(gè)獨(dú)立的函數(shù),從而讓每個(gè)函數(shù)可以異步運(yùn)行。接下來(lái),我們可以將所有Bash函數(shù)作為后臺(tái)任務(wù)運(yùn)行。最后,我們可以使用內(nèi)置的wait命令來(lái)保持腳本執(zhí)行過(guò)程處于活動(dòng)狀態(tài),直到所有異步進(jìn)程執(zhí)行結(jié)束。
請(qǐng)看以下示例代碼:
#!/bin/bash# Linux迷 www.linuxmi.comfunction task1() {echo "Running task1..."sleep 5}function task2() {echo "Running task2..."sleep 5}task1 &task2 &waitecho "www.linuxmi.com 全部完成"
在這個(gè)例子中,我們將兩個(gè)并行函數(shù)task1和task2作為后臺(tái)任務(wù)運(yùn)行。我們還使用了內(nèi)置的wait命令來(lái)確保腳本實(shí)例保持活動(dòng)狀態(tài),直到后臺(tái)任務(wù)完成執(zhí)行。如果你檢查腳本的執(zhí)行時(shí)間,你會(huì)發(fā)現(xiàn)這兩個(gè)函數(shù)在大約五秒鐘內(nèi)結(jié)束,而不是十秒鐘。
使用Bash顯示GUI組件
我們之前探討了如何使用Bash腳本運(yùn)行一段時(shí)間后顯示GUI通知。同樣地,我們可以展示其他的GUI組件,例如提示框、文本框和文件選擇器。有時(shí)我們需要為非技術(shù)人員創(chuàng)建基于GUI的自動(dòng)化程序。如果你已經(jīng)了解Bash腳本編寫(xiě),你不需要使用其他GUI開(kāi)發(fā)工具來(lái)創(chuàng)建簡(jiǎn)單的GUI應(yīng)用程序——因?yàn)槲覀兛梢允褂肂ash顯示GUI元素。
zenity程序提供了幾個(gè)命令,用于在GNU/Linux命令行環(huán)境中顯示各種GUI元素。例如,我們可以使用以下命令打開(kāi)文件選擇對(duì)話(huà)框。
zenity --file-selection
Zenity版本通常預(yù)裝在大多數(shù)基于GNOME的GNU/Linux操作系統(tǒng)發(fā)行版中。此外,作為替代,你可以在基于KDE的GNU/Linux發(fā)行版中使用kdialog命令。
macOS用戶(hù)可以像往常一樣調(diào)用AppleScript解釋器。例如,他們可以使用以下命令通過(guò)Bash腳本顯示文件選擇對(duì)話(huà)框。
osascript -e "POSIX path of (choose file)"
你也可以像Zenity那樣構(gòu)建自己的二進(jìn)制文件,并從Bash腳本中顯示任何GUI組件。此外,你還可以使用Neutralinojs通過(guò)Bash腳本在本地/遠(yuǎn)程窗口中顯示交互式的HTML界面。
使用文本樣式現(xiàn)代化終端輸出
我們經(jīng)常使用echo命令輸出腳本中的消息。默認(rèn)情況下,echo命令根據(jù)默認(rèn)終端文本樣式打印給定的文本。在特定情況下,我們可以根據(jù)當(dāng)前環(huán)境應(yīng)用基本的用戶(hù)體驗(yàn)原則來(lái)提升文本樣式。例如,我們可以使用紅色顯示錯(cuò)誤消息。此外,您可以使用粗體字體樣式強(qiáng)調(diào)段落中的一些關(guān)鍵細(xì)節(jié)。
tput是一個(gè)Unix程序,提供控制當(dāng)前終端屏幕的命令。它提供了改變終端光標(biāo)位置、獲取終端信息和更改文本樣式的命令。我們可以將tput命令與echo命令結(jié)合使用,在所有類(lèi)Unix和基于Unix的操作系統(tǒng)上打印各種文本樣式。
請(qǐng)看以下示例,打印不同的文本樣式:
#!/bin/bash# Linux迷 www.linuxmi.combold=$(tput bold)underline=$(tput smul)italic=$(tput sitm)info=$(tput setaf 2)error=$(tput setaf 160)warn=$(tput setaf 214)reset=$(tput sgr0)echo "${info}INFO${reset}: This is an ${bold}info${reset} message"echo "${error}ERROR${reset}: This is an ${underline}error${reset} message"echo "${warn}WARN${reset}: This is a ${italic}warning${reset} message"
在這里,我們使用tput命令為每種文本樣式定義了一些變量。最后,我們使用echo命令執(zhí)行臨時(shí)保存的命令,以顯示不同的文本樣式,如下所示。
Bash中的文本樣式屏幕截圖
您可以使用上述方法為Bash腳本構(gòu)建自己的個(gè)性化顏色方案。為了掩蓋kill命令的錯(cuò)誤消息,上述代碼示例使用了空設(shè)備文件(/dev/null)。
Das obige ist der detaillierte Inhalt vonFünf wenig bekannte moderne Bash-Skripttechniken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Automatisierung und Aufgabenplanung spielen eine entscheidende Rolle bei der Rationalisierung wiederkehrender Aufgaben in der Softwareentwicklung. Stellen Sie sich vor, es gibt ein Python-Skript, das alle 5 Minuten ausgeführt werden muss, beispielsweise um Daten von einer API abzurufen, eine Datenverarbeitung durchzuführen oder regelm??ige Aktualisierungen zu senden. Das h?ufige manuelle Ausführen von Skripten kann zeitaufw?ndig und fehleranf?llig sein. Hier kommt die Aufgabenplanung ins Spiel. In diesem Blogbeitrag erfahren Sie, wie Sie ein Python-Skript so planen, dass es alle 5 Minuten ausgeführt wird, um sicherzustellen, dass es automatisch und ohne manuelles Eingreifen ausgeführt wird. Wir besprechen verschiedene Methoden und Bibliotheken, mit denen Sie dieses Ziel erreichen und Aufgaben effizient automatisieren k?nnen. Eine einfache M?glichkeit, mit der Funktion time.sleep() alle 5 Minuten ein Python-Skript auszuführen, ist die Verwendung von tim

Wie führe ich eine .sh-Datei im Linux-System aus? In Linux-Systemen ist eine .sh-Datei eine Datei, die als Shell-Skript bezeichnet wird und zum Ausführen einer Reihe von Befehlen verwendet wird. Das Ausführen von .sh-Dateien ist ein sehr h?ufiger Vorgang. In diesem Artikel wird erl?utert, wie .sh-Dateien in Linux-Systemen ausgeführt werden, und es werden spezifische Codebeispiele bereitgestellt. Methode 1: Verwenden Sie einen absoluten Pfad, um eine .sh-Datei auszuführen. Um eine .sh-Datei in einem Linux-System auszuführen, k?nnen Sie einen absoluten Pfad verwenden, um den Speicherort der Datei anzugeben. Im Folgenden sind die spezifischen Schritte aufgeführt: ?ffnen Sie das Terminal

1. Was ist auto-py-to-exeauto-py-to-exe ist ein grafisches Tool zum Packen von Python-Programmen in ausführbare Dateien. In diesem Artikel wird haupts?chlich die Verwendung von Auto-Py-to-Exe zum Vervollst?ndigen der Python-Programmverpackung vorgestellt. Auto-py-to-exe basiert auf Pyinstaller, verfügt über eine zus?tzliche GUI-Schnittstelle und ist einfacher und bequemer zu verwenden. 2. Um Auto-py-to-exe zu installieren, müssen wir zun?chst sicherstellen, dass unser Python Die Umgebung ist gr??er oder gleich 2,7. Geben Sie dann in cmd Folgendes ein: pip install

Windows-Subsystem für Linux Die erste Option ist die Verwendung des Windows-Subsystems für Linux oder WSL, einer Kompatibilit?tsschicht für die native Ausführung bin?rer ausführbarer Linux-Dateien auf Windows-Systemen. Es funktioniert für die meisten Szenarien und erm?glicht Ihnen die Ausführung von Shell-Skripten in Windows 11/10. WSL ist nicht automatisch verfügbar, daher müssen Sie es über die Entwicklereinstellungen Ihres Windows-Ger?ts aktivieren. Sie k?nnen dies tun, indem Sie zu Einstellungen > Update & Sicherheit > Für Entwickler gehen. Wechseln Sie in den Entwicklermodus und best?tigen Sie die Abfrage mit Ja. Suchen Sie als n?chstes nach W

In der heutigen schnelllebigen digitalen Welt kann die Automatisierung von Computeraufgaben die Produktivit?t und den Komfort erheblich steigern. Eine der Aufgaben ist das Herunterfahren des Computers, was bei manueller Ausführung sehr zeitaufw?ndig sein kann. Glücklicherweise stellt uns Python eine Reihe leistungsstarker Tools zur Verfügung, mit denen wir mit dem System interagieren und solche Aufgaben automatisieren k?nnen. In diesem Blogbeitrag erfahren Sie, wie Sie ein Python-Skript schreiben, um Ihren Computer einfach herunterzufahren. Egal, ob Sie ein automatisches Herunterfahren planen, ein Herunterfahren aus der Ferne einleiten oder einfach Zeit sparen m?chten, indem Sie ein manuelles Herunterfahren vermeiden m?chten, dieses Skript ist praktisch. Importieren der erforderlichen Module Bevor wir mit dem Schreiben des Skripts beginnen, müssen wir die erforderlichen Module importieren, um mit dem System zu interagieren und den Befehl zum Herunterfahren auszuführen. In diesem Abschnitt importieren wir das Betriebssystemmodul (das

Cutting ist ein Videobearbeitungstool mit umfassenden Bearbeitungsfunktionen, Unterstützung für variable Geschwindigkeit, verschiedenen Filtern und Sch?nheitseffekten sowie umfangreichen Ressourcen für die Musikbibliothek. In dieser Software k?nnen Sie Videos direkt bearbeiten oder Bearbeitungsskripte erstellen, aber wie geht das? In diesem Tutorial stellt der Redakteur die Methode zum Bearbeiten und Erstellen von Skripten vor. Produktionsmethode: 1. Klicken Sie, um die Bearbeitungssoftware auf Ihrem Computer zu ?ffnen, suchen Sie dann die Option ?Erstellungsskript“ und klicken Sie zum ?ffnen. 2. Geben Sie auf der kreativen Skriptseite den ?Skripttitel“ ein und geben Sie dann in der Gliederung eine kurze Einführung in den Drehinhalt ein. 3. Wie kann ich die Option ?Storyboard-Beschreibung“ in der Gliederung sehen?

Das Neustarten Ihres Computers ist eine h?ufige Aufgabe, die wir h?ufig durchführen, um Probleme zu beheben, Updates zu installieren oder System?nderungen vorzunehmen. Obwohl es viele M?glichkeiten gibt, Ihren Computer neu zu starten, bietet die Verwendung eines Python-Skripts Automatisierung und Komfort. In diesem Artikel erfahren Sie, wie Sie ein Python-Skript erstellen, das Ihren Computer durch eine einfache Ausführung neu starten kann. Wir besprechen zun?chst, wie wichtig ein Neustart Ihres Computers ist und welche Vorteile er mit sich bringt. Anschlie?end werden wir uns mit den Implementierungsdetails des Python-Skripts befassen und die erforderlichen Module und Funktionen erl?utern. In diesem Artikel stellen wir ausführliche Erkl?rungen und Codeausschnitte bereit, um ein klares Verst?ndnis zu gew?hrleisten. Die Bedeutung eines Neustarts Ihres Computers Der Neustart Ihres Computers ist ein grundlegender Schritt zur Fehlerbehebung

Einige Beispiele für Python-Skripte: Unternehmens-WeChat-Alarme, FTP-Clients, SSH-Clients, Saltstack-Clients, vCenter-Clients, Abrufen der Ablaufzeit des SSL-Zertifikats für Dom?nennamen, Senden der heutigen Wettervorhersage und zukünftiger Wettertrenddiagramme: SVN-Vollsicherung; Zabbix überwacht den Ablauf des Benutzerkennworts, erstellt lokales YUM und die Anforderungen der Leser im vorherigen Artikel (wenn die Auslastung hoch ist, finden Sie heraus, welche Prozessskripte eine relativ hohe Auslastung belegen und Benachrichtigungen speichern oder pushen). Bitte haben Sie etwas Geduld. Am Ende des Artikels gibt es doch noch ein Easter Egg. Python-Skript ist Teil des WeChat-Alarms für Unternehmen. Dieses Skript verwendet die WeChat-Anwendung des Unternehmens, um einen WeChat-Alarm durchzuführen, und kann verwendet werden
