成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

利用 Shell 腳本自動化命令的五種方法

開發 前端
Shell 編寫由 UNIX 終端執行的命令序列。 這意味著您可以使用它們與命令行界面 (CLI) 進行交互,甚至可以編寫自己的邏輯。 本文將向您展示如何使用簡單的 shell 腳本作為您自己的 CLI。

當您的計算機可以為您完成時,不要浪費時間記住長命令。

本文使用的是 MacOS

Shell 編寫由 UNIX 終端執行的命令序列。 這意味著您可以使用它們與命令行界面 (CLI) 進行交互,甚至可以編寫自己的邏輯。 本文將向您展示如何使用簡單的 shell 腳本作為您自己的 CLI。

Shell 腳本的用例

  • 縮短長 CLI 函數
  • 運行多個連續函數
  • 實現邏輯以確定要執行的適當命令

制作 bin 目錄

如果您希望能夠從任何地方運行您的腳本,那么好消息,您可以!

基于 UNIX 的操作系統(例如 MacOS 和 Linux)會將位于 ~/bin 目錄中的所有 shell 腳本納入范圍。

通過在終端中運行以下命令來檢查您是否擁有它。

$ [[ -d ~/bin ]] && echo "Directory ~/bin exists." || echo "Directory ~/bin does not exist"

如果你沒有這個文件夾,你的終端會回復“目錄~/bin 不存在”。

如果您收到此消息,請運行命令 mkdir ~/bin。

示例 1:Hello World

讓我們從一個基本腳本開始,以幫助您掌握它!

在您的終端中,執行以下命令:

$ cd ~/bin
$ touch hello
$ chmod 777 hello

這會將您的終端移動到 bin 作為您的工作目錄,創建一個名為 hello 的文件,并授予它作為可執行文件運行的權限。 在您選擇的代碼編輯器中打開文件。

#!/bin/bash
echo "World!"

注意:#!/bin/bash 告訴您的設備將文件作為 bash 腳本運行,沒有它腳本將無法運行。

現在讓我們運行文件!

如您所見,我可以從計算機上的任何目錄運行腳本!

示例 2:引入參數

既然我們已經掌握了基礎知識,那么在進入我一直使用的腳本之前,讓我們看一下稍微復雜一點的 hello world 版本!

Shell 腳本保留了變量名稱,例如 $1、$2、$3 等。這些是命令行參數的替身。 讓我們在我們的 hello 腳本中使用它們,如下所示:

#!/bin/bash
echo "hello $1"

讓我們將這個概念應用到一個真實的例子中。

許多使用 Java 編碼的人可能都知道,您必須先將 .java 文件編譯為 .class 才能運行它,這是兩個單獨的命令。 讓我們制作一個 shell 腳本,將它們組合成一個“編譯并運行”命令!

如果您在創建新腳本時需要幫助,可以跳回 hello world 步驟。 我將此文件稱為“javab”

#!/bin/bash
javac $1 # compile to .class
/bin/java ${1:-5} # point to local java function, run

示例 3:縮短現有命令

如果你之前用過FFmpeg壓縮過視頻文件,你就會知道這個命令并不短,而且通常每一步都很難記住。 這是一個使用 25 的恒定速率因子 (CRF) 的示例。

ffmpeg -i file.mov -vcodec libx264 -crf 25 newfile.mp4

這是我經常運行的命令,用于壓縮 mac 屏幕錄制并將其轉換為 mp4。 讓我們嘗試使用 shell 腳本來簡化它!

如果你沒有安裝 FFmpeg,你可以在這里下載。

#!/bin/bash
ffmpeg -i $1 -vcodec libx264 -crf $2 $3

我稱這個文件為“壓縮”。

現在,我可以從任何工作目錄壓縮視頻并將新文件保留在同一目錄中。 如果你愿意,你可以添加一些額外的邏輯,比如

#!/bin/bash
ffmpeg -i $1 -vcodec libx264 -crf $2 ${1%.*}.mp4 && rm $1

此命令將 $1 中文件名的擴展名去掉,并將其替換為 .mp4。 如果命令運行成功,則刪除原始文件,否則不執行任何操作

示例 5:循環和 If

這將是我們最后的也是最復雜的例子,但它也是我使用最多的例子。

如果您曾經有許多不同的遙控器鏈接到 heroku、github、bitbucket 等,并且想要推送到所有這些,那總是很麻煩。

特別是如果您進行了許多小提交并希望與同事分享您的最新更改以防止合并沖突。

這是一個簡短的“保存”腳本,它將提交您的最新更改,然后推送到您的遙控器!

#!/bin/bash
commit=$1 # set var commit to argument 1
if [ -z "$commit" ] # if commit is empty
then
commit="autosave"
fi
git commit -am "$commit"
output=$(git remote) # run git remote and save all remotes
pusharray=($output) # convert to array
for i in ${pusharray[@]}; do # for every item in pusharray, git push
git push $i
done

結論

總之,您已經學會了如何使用參數、字符串操作、條件(if 語句和 &&)和循環來自動化本地命令行工作流。

您現在能夠更好地利用您的 shell 腳本知識來推進您的工作并節省一些時間!

責任編輯:華軒 來源: 七爪網
相關推薦

2023-10-30 17:41:29

機器人自動化

2021-03-02 10:55:07

云計算自動化云應用

2022-05-27 14:27:29

人工智能自動化流程RPA

2022-06-02 08:47:24

人工智能CIO自動化

2021-03-11 14:23:17

云計算混合云工具

2023-03-20 15:14:39

視覺回歸測試軟件開發

2023-09-01 09:21:03

Python自動化測試

2017-12-17 21:58:18

2022-02-07 08:50:40

CIO自動化

2022-02-17 13:03:28

Python腳本代碼

2012-03-15 10:32:05

Windows系統網絡故障

2019-10-29 14:07:24

大數據人工智能技術

2021-07-26 14:34:02

springboot 時間格式化項目

2024-11-05 08:28:50

2021-03-23 08:00:00

工具開發審查

2009-12-09 14:22:44

2024-11-11 16:55:54

2022-12-07 11:24:51

首席信息官IT

2009-07-03 17:48:24

JSP頁面跳轉

2025-04-25 08:55:00

Pod運維
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线一区二区三区 | 国产成人精品久久二区二区91 | 国产精久久久久久 | 国产精品高清一区二区三区 | 亚洲综合免费 | 91精品www | 国产精品乱码一区二区三区 | 亚洲乱码一区二区三区在线观看 | 国产精品精品视频 | www亚洲一区 | 欧美一区二区黄 | 日韩中文字幕在线 | 久久新视频| 日韩欧美综合在线视频 | 91热在线 | 天天艹逼网 | 毛片在线免费 | 亚洲视频在线看 | 国产色爽 | 一区二区三区在线免费观看视频 | 亚洲精品久久久一区二区三区 | 久久久久久久久久久久亚洲 | 久久y| 91视视频在线观看入口直接观看 | 国产久| 黄色大片网 | 在线精品一区二区三区 | www.啪啪.com| 亚洲精品一区二区三区中文字幕 | 三级在线视频 | 91视频精选 | 欧美一区在线看 | 91精品一区二区三区久久久久 | 日韩中文字幕视频在线观看 | 日本天天色| 国产精品视频在 | 欧美精品一区二区三区在线四季 | 亚洲精品一区二三区不卡 | 欧美白人做受xxxx视频 | 亚洲狠狠 | 91亚洲视频在线 |