あまり知られていない 5 つの最新の Bash スクリプト テクニック
Bash命令语言常被程序员用来编写Shell脚本,以实现手动任务的自动化。他们会编写Bash脚本来自动化各种配置、文件操作、构建结果生成和与DevOps相关的活动。几乎所有类Unix或基于Unix的操作系统都为用户提供预安装的Bash解释器,因此我们可以使用Bash编写更具可移植性的自动化脚本。
正如我们已经知道的那样,Bash脚本编写是指使用Bash命令语言的语法、内置Bash命令和核心操作系统CLI程序(如GNU核心工具)编写一系列命令。一般而言,遵循传统的Bash脚本会执行一些命令并在终端上输出纯文本。
我们可以使用几个特别的理念来使我们的 Bash 脚本更加适用于未来且更加用户友好。使用一些不太常见的现代Bash脚本编写技巧,可以令您的自动化脚本更具现代感,涵盖以下概念。
显示动画以指示长时间运行的任务
在某些情况下,我们需要从Bash脚本中执行长时间运行的命令。有几种方法可以指示长时间运行的任务。显示带有三个点的消息(也称为省略号),最简单和最容易的方法是使用echo命令。然而,这种技术所产生的信息是静态的,缺乏互动性和用户友好性,对于开发人员也是如此。
轻松展示ASCII动画只需使用核心Unix操作系统命令和Bash内置命令即可。看下面这个只有两个动画帧的简单动画示例:
#!/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脚本在终端上显示一个无尽的两帧动画。printf语句使用\r转义字符来重置当前行的终端光标。上面的脚本呈现了以下基于文本的动画:
一个简单的两帧文本动画
我们可以在动画中添加更多帧,并使用以下Bash脚本在特定耗时任务完成之前一直显示动画。
#!/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"
该脚本将显示一个基于文本的旋转器动画,直到经过5秒的sleep命令完成执行。同样地,我们可以使用旋转器动画来代替静态消息,在执行任何需要耗时的任务时显示。预览如下。
一个带有旋转器文本动画的Bash脚本,作者的截图 这些基于文本的动画使命令行程序更加用户友好和互动,因此大多数现代命令行程序都显示这些ASCII动画。现在你知道如何通过改变帧字符列表,为你的Bash脚本添加动画效果。
从Bash显示本地GUI通知
常用的开发人员通常会使用Bash脚本和命令行程序来提供工具的终端界面。例如,Flutter框架为开发人员提供了flutter命令行程序,用于管理Flutter应用程序和配置Flutter应用程序开发环境。假设你正在开发一个耗时的命令行脚本。在用户不查看终端输出时,如何显示重要消息?
GUI通知在所有Unix类和基于Unix的操作系统中都可以使用特定的命令来显示。我们可以从Bash脚本中调用这些命令来显示本地通知。比如,在以GNU/Linux为基础的操作系统上,你可以使用notify-send命令,示例如下:。
#!/bin/bash# Linux迷 www.linuxmi.comsleep 10notify-send "notify.sh" "Task #1 已成功完成 www.linuxmi.com"
一些GNU/Linux发行版通常会预装notify-send工具的版本。上面的Bash脚本在十秒后显示了一个本地通知。预览如下:
在Ubuntu上的本地通知截图
macOS用户可以通过在Bash中执行AppleScript解释器来显示本地通知,如下所示:
#!/bin/bashsleep 10osascript -e "display notification \"Task #1 www.linuxmi.com 已成功完成\" with title \"notify.sh\""
在Bash脚本中的多进程处理非常有助于通过长时间运行的脚本或永久运行的后台脚本向用户通知重要事件。
在Bash脚本中的多进程处理
通常,程序员使用Bash脚本按顺序运行命令。所以,Bash解释器会一个接一个地运行每个语句,直到到达源文件的结尾或遇到一个exit语句。然而,我们可以改变这种顺序执行的方式,实现并行执行以加快自动化脚本的速度。
我们可以将整个 Bash 脚本分成几个独立的函数,从而让每个函数可以异步运行。接下来,我们可以将所有Bash函数作为后台任务运行。最后,我们可以使用内置的wait命令来保持脚本执行过程处于活动状态,直到所有异步进程执行结束。
请看以下示例代码:
#!/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 全部完成"
在这个例子中,我们将两个并行函数task1和task2作为后台任务运行。我们还使用了内置的wait命令来确保脚本实例保持活动状态,直到后台任务完成执行。如果你检查脚本的执行时间,你会发现这两个函数在大约五秒钟内结束,而不是十秒钟。
使用Bash显示GUI组件
我们之前探讨了如何使用Bash脚本运行一段时间后显示GUI通知。同样地,我们可以展示其他的GUI组件,例如提示框、文本框和文件选择器。有时我们需要为非技术人员创建基于GUI的自动化程序。如果你已经了解Bash脚本编写,你不需要使用其他GUI开发工具来创建简单的GUI应用程序——因为我们可以使用Bash显示GUI元素。
zenity程序提供了几个命令,用于在GNU/Linux命令行环境中显示各种GUI元素。例如,我们可以使用以下命令打开文件选择对话框。
zenity --file-selection
Zenity版本通常预装在大多数基于GNOME的GNU/Linux操作系统发行版中。此外,作为替代,你可以在基于KDE的GNU/Linux发行版中使用kdialog命令。
macOS用户可以像往常一样调用AppleScript解释器。例如,他们可以使用以下命令通过Bash脚本显示文件选择对话框。
osascript -e "POSIX path of (choose file)"
你也可以像Zenity那样构建自己的二进制文件,并从Bash脚本中显示任何GUI组件。此外,你还可以使用Neutralinojs通过Bash脚本在本地/远程窗口中显示交互式的HTML界面。
使用文本样式现代化终端输出
我们经常使用echo命令输出脚本中的消息。默认情况下,echo命令根据默认终端文本样式打印给定的文本。在特定情况下,我们可以根据当前环境应用基本的用户体验原则来提升文本样式。例如,我们可以使用红色显示错误消息。此外,您可以使用粗体字体样式强调段落中的一些关键细节。
tput是一个Unix程序,提供控制当前终端屏幕的命令。它提供了改变终端光标位置、获取终端信息和更改文本样式的命令。我们可以将tput命令与echo命令结合使用,在所有类Unix和基于Unix的操作系统上打印各种文本样式。
请看以下示例,打印不同的文本样式:
#!/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命令执行临时保存的命令,以显示不同的文本样式,如下所示。
Bash中的文本样式屏幕截图
您可以使用上述方法为Bash脚本构建自己的个性化颜色方案。为了掩盖kill命令的错误消息,上述代码示例使用了空设备文件(/dev/null)。
以上があまり知られていない 5 つの最新の Bash スクリプト テクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









自動化とタスクのスケジューリングは、ソフトウェア開発における反復的なタスクを合理化する上で重要な役割を果たします。 API からのデータの取得、データ処理の実行、定期的な更新の送信など、5 分ごとに実行する必要がある Python スクリプトがあると想像してください。スクリプトを手動で頻繁に実行すると、時間がかかり、エラーが発生しやすくなります。ここでタスクのスケジュール設定が役に立ちます。このブログ投稿では、Python スクリプトを 5 分ごとに実行するようにスケジュールし、手動介入なしで自動的に実行されるようにする方法を説明します。この目標を達成するために使用でき、タスクを効率的に自動化できるさまざまな方法とライブラリについて説明します。 time.sleep() 関数を使用して Python スクリプトを 5 分ごとに実行する簡単な方法は、tim を利用することです。

Cutting は、包括的な編集機能、可変速度のサポート、さまざまなフィルターや美容効果、豊富な音楽ライブラリ リソースを備えたビデオ編集ツールです。このソフトでは動画を直接編集したり、編集スクリプトを作成したりすることができますが、どのように行うのですか?このチュートリアルでは、エディターがスクリプトを編集および作成する方法を紹介します。作成方法: 1. コンピュータ上で編集ソフトウェアをクリックして開き、「作成スクリプト」オプションを見つけてクリックして開きます。 2. 作成台本ページで「台本タイトル」を入力し、概要に撮影内容の簡単な紹介文を入力します。 3. アウトラインに「ストーリーボードの説明」オプションを表示するにはどうすればよいですか?

Linuxシステムで.shファイルを実行するにはどうすればよいですか? Linux システムでは、.sh ファイルはシェル スクリプトと呼ばれるファイルであり、一連のコマンドを実行するために使用されます。 .sh ファイルの実行は非常に一般的な操作です。この記事では、Linux システムで .sh ファイルを実行する方法と具体的なコード例を紹介します。方法 1: 絶対パスを使用して .sh ファイルを実行する Linux システムで .sh ファイルを実行するには、絶対パスを使用してファイルの場所を指定できます。具体的な手順は次のとおりです。 ターミナルを開きます。

今日のペースの速いデジタル世界では、コンピューターのタスクを自動化できることで、生産性と利便性が大幅に向上します。タスクの 1 つはコンピュータのシャットダウンですが、これを手動で行うと非常に時間がかかる可能性があります。ありがたいことに、Python はシステムと対話し、そのようなタスクを自動化するための強力なツールのセットを提供します。このブログ投稿では、コンピューターを簡単にシャットダウンするための Python スクリプトの作成方法を検討します。自動シャットダウンをスケジュールする場合でも、リモートでシャットダウンを開始する場合でも、手動シャットダウンを回避して単に時間を節約する場合でも、このスクリプトは役に立ちます。必要なモジュールのインポート スクリプトの作成を開始する前に、システムと対話してシャットダウン コマンドを実行するために必要なモジュールをインポートする必要があります。このセクションでは、os モジュール (

コンピューターの再起動は、問題のトラブルシューティング、更新プログラムのインストール、システム変更の適用などのために頻繁に実行される一般的なタスクです。コンピューターを再起動する方法はたくさんありますが、Python スクリプトを使用すると自動化され便利です。この記事では、簡単な実行でコンピュータを再起動できる Python スクリプトの作成方法を説明します。まず、コンピュータを再起動することの重要性と、それがもたらす利点について説明します。次に、Python スクリプトの実装の詳細を詳しく調べ、必要なモジュールと関連する機能について説明します。この記事では、明確な理解を確実にするために、詳細な説明とコード スニペットを提供します。コンピュータを再起動することの重要性 コンピュータを再起動することは、次のことを可能にする基本的なトラブルシューティング手順です。

1. auto-py-to-exe とはauto-py-to-exe は、Python プログラムを実行可能ファイルにパッケージ化するために使用されるグラフィカル ツールです。この記事では主にauto-py-to-exeを使用してPythonプログラムのパッケージ化を完了する方法を紹介します。 auto-py-to-exe は pyinstaller に基づいています。pyinstaller と比較して、GUI インターフェイスがあり、よりシンプルで使いやすいです。2. auto-py-to-exe をインストールするには、まず Python 環境を確認する必要があります。は 2.7 以上です。次に、cmd に「pip install」と入力します。

Linux 用 Windows サブシステム 最初のオプションは、Linux バイナリ実行可能ファイルを Windows システム上でネイティブに実行するための互換性レイヤーである Windows サブシステム for Linux または WSL を使用することです。ほとんどのシナリオで機能し、Windows 11/10 でシェル スクリプトを実行できるようになります。 WSL は自動的には利用できないため、Windows デバイスの開発者設定を通じて有効にする必要があります。これを行うには、[設定] > [更新とセキュリティ] > [開発者向け] に移動します。開発者モードに切り替え、プロンプトを確認して [はい] を選択します。次にWを探します

この Windows PowerShell スクリプト チュートリアルは、テクノロジ愛好家でも、スクリプト スキルの向上を目指す専門家でも、初心者向けに設計されています。 PowerShell スクリプトに関する予備知識がない場合は、この記事は基本から始めて、あなたに合わせてカスタマイズしてください。 PowerShell 環境のインストール手順をマスターし、PowerShell スクリプトの主な概念と機能を説明します。 PowerShell スクリプトについてさらに学ぶ準備ができている場合は、このエキサイティングな学習の旅に一緒に乗り出しましょう。 WindowsPowerShell とは何ですか? PowerShell は、Microsoft によって開発されたハイブリッド コマンド システムです。
