成人免费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

機器人自動化

2022-05-27 14:27:29

人工智能自動化流程RPA

2022-06-02 08:47:24

人工智能CIO自動化

2021-03-02 10:55:07

云計算自動化云應用

2021-03-11 14:23:17

云計算混合云工具

2023-03-20 15:14:39

視覺回歸測試軟件開發

2023-09-01 09:21:03

Python自動化測試

2022-02-07 08:50:40

CIO自動化

2021-07-26 14:34:02

springboot 時間格式化項目

2017-12-17 21:58:18

2022-02-17 13:03:28

Python腳本代碼

2012-03-15 10:32:05

Windows系統網絡故障

2019-10-29 14:07:24

大數據人工智能技術

2024-11-05 08:28:50

2021-03-23 08:00:00

工具開發審查

2009-12-09 14:22:44

2022-12-29 08:46:15

IT采購投資

2024-11-11 16:55:54

2022-12-07 11:24:51

首席信息官IT

2009-07-03 17:48:24

JSP頁面跳轉
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕免费在线 | 久久6视频 | 国产日韩视频 | 免费在线观看成年人视频 | 久久综合av | 91精品综合久久久久久五月天 | 欧美h版 | 欧美lesbianxxxxhd视频社区 | 天天草视频 | 午夜国产精品视频 | 美国一级片在线观看 | 97精品超碰一区二区三区 | 99热在线播放 | 黄色片免费 | 中文字幕 在线观看 | 亚洲在线一区二区 | 亚洲成人国产综合 | 中文字幕不卡在线观看 | av一区二区在线观看 | av黄色在线| 波多野结衣中文字幕一区二区三区 | 欧美日韩久久久 | 99久久婷婷国产综合精品电影 | 啪啪av | 91国在线高清视频 | 国产在线观看一区二区 | 欧美精品久久久久久久久久 | 天天干天天玩天天操 | 亚洲国产一区在线 | 亚洲三区在线观看 | 黄色av网站免费看 | 国产精品一二三区 | 色香蕉在线 | 久久国产三级 | 日中文字幕在线 | 欧美一级视频在线观看 | 亚洲第1页 | 免费观看一级特黄欧美大片 | 欧美极品在线视频 | 在线第一页 | 亚洲国产精品一区二区第一页 |