国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何入門 Bash 編程

系統(tǒng) Linux
在 Bash 中,你使用的大多數(shù) 關鍵字 是 Linux 命令。 語法 就是 Bash。如果你已經(jīng)頻繁地使用過了 Bash,則向 Bash 編程的過渡相對容易。但是,如果你不曾使用過 Bash,你會很高興地了解到它是一種為清晰和簡單而構建的簡單語言。


?[[388161]]??

了解如何在 Bash 中編寫定制程序以自動執(zhí)行重復性操作任務。


Unix 最初的希望之一是,讓計算機的日常用戶能夠微調其計算機,以適應其獨特的工作風格。幾十年來,人們對計算機定制的期望已經(jīng)降低,許多用戶認為他們的應用程序和網(wǎng)站的集合就是他們的 “定制環(huán)境”。原因之一是許多操作系統(tǒng)的組件未不開源,普通用戶無法使用其源代碼。

但是對于 Linux 用戶而言,定制程序是可以實現(xiàn)的,因為整個系統(tǒng)都圍繞著可通過終端使用的命令啦進行的。終端不僅是用于快速命令或深入排除故障的界面;也是一個腳本環(huán)境,可以通過為你處理日常任務來減少你的工作量。

如何學習編程

如果你以前從未進行過任何編程,可能面臨考慮兩個不同的挑戰(zhàn):一個是了解怎樣編寫代碼,另一個是了解要編寫什么代碼。你可以學習 語法,但是如果你不知道 語言 中有哪些可用的關鍵字,你將無法繼續(xù)。在實踐中,要同時開始學習這兩個概念,是因為如果沒有關鍵字的堆砌就無法學習語法,因此,最初你要使用基本命令和基本編程結構來編寫簡單的任務。一旦熟悉了基礎知識,就可以探索更多編程語言的內容,從而使你的程序能夠做越來越重要的事情。

在 ??Bash?? 中,你使用的大多數(shù) 關鍵字 是 Linux 命令。 語法 就是 Bash。如果你已經(jīng)頻繁地使用過了 Bash,則向 Bash 編程的過渡相對容易。但是,如果你不曾使用過 Bash,你會很高興地了解到它是一種為清晰和簡單而構建的簡單語言。

交互設計

有時,學習編程時最難搞清楚的事情就是計算機可以為你做些什么。顯然,如果一臺計算機可以自己完成你要做的所有操作,那么你就不必再碰計算機了。但是現(xiàn)實是,人類很重要。找到你的計算機可以幫助你的事情的關鍵是注意到你一周內需要重復執(zhí)行的任務。計算機特別擅長于重復的任務。

但是,為了能告知計算機為你做某事,你必須知道怎么做。這就是 Bash 擅長的領域:交互式編程。在終端中執(zhí)行一個動作時,你也在學習如何編寫腳本。

例如,我曾經(jīng)負責將大量 PDF 書籍轉換為低墨和友好打印的版本。一種方法是在 PDF 編輯器中打開 PDF,從數(shù)百張圖像(頁面背景和紋理都算作圖像)中選擇每張圖像,刪除它們,然后將其保存到新的 PDF中。僅僅是一本書,這樣就需要半天時間。

我的第一個想法是學習如何編寫 PDF 編輯器腳本,但是經(jīng)過數(shù)天的研究,我找不到可以編寫編輯 PDF 應用程序的腳本(除了非常丑陋的鼠標自動化技巧)。因此,我將注意力轉向了從終端內找出完成任務的方法。這讓我有了幾個新發(fā)現(xiàn),包括 GhostScript,它是 PostScript 的開源版本(PDF 基于的打印機語言)。通過使用 GhostScript 處理了幾天的任務,我確認這是解決我的問題的方法。

編寫基本的腳本來運行命令,只不過是復制我用來從 PDF 中刪除圖像的命令和選項,并將其粘貼到文本文件中而已。將這個文件作為腳本運行,大概也會產(chǎn)生同樣的結果。

向 Bash 腳本傳參數(shù)

在終端中運行命令與在 Shell 腳本中運行命令之間的區(qū)別在于前者是交互式的。在終端中,你可以隨時進行調整。例如,如果我剛剛處理 ??example_1.pdf?? 并準備處理下一個文檔,以適應我的命令,則只需要更改文件名即可。

Shell 腳本不是交互式的。實際上,Shell 腳本 存在的唯一原因是讓你不必親自參與。這就是為什么命令(以及運行它們的 Shell 腳本)會接受參數(shù)的原因。

在 Shell 腳本中,有一些預定義的可以反映腳本啟動方式的變量。初始變量是 ??$0???,它代表了啟動腳本的命令。下一個變量是 ??$1??? ,它表示傳遞給 Shell 腳本的第一個 “參數(shù)”。例如,在命令 ??echo hello??? 中,命令 ??echo??? 為 ??$0,???,關鍵字 ??hello??? 為 ??$1???,而 ??world??? 是 ??$2??。

在 Shell 中交互如下所示:

$ echo hello world
hello world

在非交互式 Shell 腳本中,你 可以 以非常直觀的方式執(zhí)行相同的操作。將此文本輸入文本文件并將其另存為 ??hello.sh??:

echo hello world

執(zhí)行這個腳本:

$ bash hello.sh
hello world

同樣可以,但是并沒有利用腳本可以接受輸入這一優(yōu)勢。將 ??hello.sh?? 更改為:

echo $1

用引號將兩個參數(shù)組合在一起來運行腳本:

$ bash hello.sh "hello bash"
hello bash

對于我的 PDF 瘦身項目,我真的需要這種非交互性,因為每個 PDF 都花了幾分鐘來壓縮。但是通過創(chuàng)建一個接受我的輸入的腳本,我可以一次將幾個 PDF 文件全部提交給腳本。該腳本按順序處理了每個文件,這可能需要半小時或稍長一點時間,但是我可以用半小時來完成其他任務。

流程控制

創(chuàng)建 Bash 腳本是完全可以接受的,從本質上講,這些腳本是你開始實現(xiàn)需要重復執(zhí)行任務的準確過程的副本。但是,可以通過控制信息流的方式來使腳本更強大。管理腳本對數(shù)據(jù)響應的常用方法是:


  • ??if???/??then?? 選擇結構語句
  • ??for?? 循環(huán)結構語句
  • ??while?? 循環(huán)結構語句
  • ??case?? 語句

計算機不是智能的,但是它們擅長比較和分析數(shù)據(jù)。如果你在腳本中構建一些數(shù)據(jù)分析,則腳本會變得更加智能。例如,基本的 ??hello.sh?? 腳本運行后不管有沒有內容都會顯示:

$ bash hello.sh foo
foo
$ bash hello.sh
 $

如果在沒有接收輸入的情況下提供幫助消息,將會更加容易使用。如下是一個 ??if???/??then??? 語句,如果你以一種基本的方式使用 Bash,則你可能不知道 Bash 中存在這樣的語句。但是編程的一部分是學習語言,通過一些研究,你將了解 ??if/then?? 語句:

if [ "$1" = "" ]; then
        echo "syntax: $0 WORD"
        echo "If you provide more than one word, enclose them in quotes."
else
        echo "$1"
fi

運行新版本的 ??hello.sh?? 輸出如下:

$ bash hello.sh
syntax: hello.sh WORD
If you provide more than one word, enclose them in quotes.
$ bash hello.sh "hello world"
hello world

利用腳本工作

無論你是從 PDF 文件中查找要刪除的圖像,還是要管理混亂的下載文件夾,抑或要創(chuàng)建和提供 Kubernetes 鏡像,學習編寫 Bash 腳本都需要先使用 Bash,然后學習如何將這些腳本從僅僅是一個命令列表變成響應輸入的東西。通常這是一個發(fā)現(xiàn)的過程:你一定會找到新的 Linux 命令來執(zhí)行你從未想象過可以通過文本命令執(zhí)行的任務,你會發(fā)現(xiàn) Bash 的新功能,使你的腳本可以適應所有你希望它們運行的不同方式。

學習這些技巧的一種方法是閱讀其他人的腳本。了解人們如何在其系統(tǒng)上自動化死板的命令。看看你熟悉的,并尋找那些陌生事物的更多信息。

另一種方法是下載我們的 ??Bash 編程入門??? 電子書。它向你介紹了特定于 Bash 的編程概念,并且通過學習的構造,你可以開始構建自己的命令。當然,它是免費的,并根據(jù) ??創(chuàng)作共用許可證?? 進行下載和分發(fā)授權,所以今天就來獲取它吧。


責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-08-23 12:12:45

BashLinux

2019-12-26 12:47:10

BashLinux命令

2022-08-01 10:11:24

Bash編程易錯代碼

2013-08-20 10:56:08

BashBash編程Bash錯誤

2010-06-23 16:05:36

Linux Bash

2009-07-28 08:28:15

2009-12-25 09:47:05

LinuxShell編程bash

2020-02-27 14:58:03

LinuxBash編程命令

2010-06-23 15:55:36

Linux Bash

2020-06-24 15:30:39

Bashhistory命令Linux

2021-04-02 06:35:49

Bash讀寫文件Linux

2019-11-08 15:10:59

BashBash編程Linux

2022-04-11 09:39:58

Linux進程編程

2020-04-09 10:18:51

Bash循環(huán)Linux

2020-06-17 17:29:11

BashLinux

2011-09-27 13:52:41

2010-09-14 13:22:17

Scala編程指南Scala

2017-12-14 10:25:32

2011-03-03 10:20:06

bash系統(tǒng)管理

2022-05-17 09:32:24

Bash編程Linux
點贊
收藏

51CTO技術棧公眾號

一区二区成人精品| 奇门遁甲1982国语版免费观看高清| 一区二区三区视频在线观看免费| 日韩制服丝袜先锋影音| 国产精品久久久久久av| 欧美freesex8一10精品| 亚洲午夜久久久影院| av手机在线观看| 91精品啪在线观看国产60岁| 国产精品一二三区视频| 午夜久久电影网| 全部a∨一极品视觉盛宴| 国产日韩综合av| 国产美女主播在线| 国产.欧美.日韩| 国产又粗又猛又爽又黄的网站| 日本美女一区二区三区| 日产精品久久久一区二区| 亚洲国产高清一区| 看高清中日韩色视频| 亚洲一区二区网站| 亚洲国产精品一区二区第一页| 日本色综合中文字幕| 新呦u视频一区二区| 免费高清成人在线| 黄色高清视频网站| 成人激情小说网站| 国产免费人做人爱午夜视频| 国产亚洲欧美在线| www.色就是色| 亚洲欧美日韩小说| 日韩写真在线| 欧美日韩久久久一区| 午夜dj在线观看高清视频完整版| 亚洲国产精品字幕| 日本国产亚洲| 欧美一区亚洲一区| **女人18毛片一区二区| 精品久久久三级| 琪琪一区二区三区| 欧洲精品一区二区三区久久| 91捆绑美女网站| 日韩男人天堂| 欧美性感一区二区三区| caoporn-草棚在线视频最| 久久精品国产一区| 国产一区网站| 欧美日韩系列| 91在线国产观看| 中文在线三区| 欧美日韩成人一区| sis001欧美| 欧美最猛性xxxxx亚洲精品| 欧美成人中文| 69sex久久精品国产麻豆| 亚洲女爱视频在线| 麻豆tv入口在线看| 久久精品国产99国产精品澳门 | 国产精品视频yy9299一区| 香港三级经典全部种子下载| 欧美美女bb生活片| 亚洲男人在线| av在线不卡一区| 成人精品一区二区三区中文字幕 | 第九色区av在线| 日韩不卡在线观看| 欧美极品中文字幕| 亚洲国产欧美不卡在线观看| 日本一区二区三区四区在线视频| 国产二区视频在线观看| www.美女亚洲精品| 韩日在线一区| 国产成人精品无码播放| 欧美日韩中文字幕一区| 在线观看亚洲精品福利片| 成人国产精品一区| 国产成人啪午夜精品网站男同| 最近中文字幕mv2018在线高清| 亚洲国产精品免费| 国产亚洲精品美女久久久久久久久久| 三级三级久久三级久久18| 日韩理论片中文av| 欧美性xxx| 国产精选在线观看91| 欧美激情综合五月色丁香小说| caoporm免费视频在线| 日本精品久久久久久久| 国产一区二区h| 国产在线观看高清视频| 性亚洲最疯狂xxxx高清| 国产做a爰片久久毛片| 国产福利在线看| 欧美孕妇性xx| 成人精品视频一区二区三区尤物| 午夜伦全在线观看| 国产精品久久久久91| 91片黄在线观看| 超碰资源在线| 久久久久久久久久码影片| 亚洲综合自拍偷拍| avtt久久| 99er在线视频| 欧美成人在线直播| 加勒比久久高清| 一本久道高清无码视频| 精品国产乱码久久久久久图片| 91精品1区| 992tv在线影院| 国产69精品久久久| 99久久国产综合精品麻豆| 中文字幕乱码中文乱码51精品| 精品1区2区| 欧美性猛交xxxx免费看漫画| 欧美日韩黑人| 男女免费网站| 97在线精品国自产拍中文| 久久久噜噜噜久久中文字幕色伊伊| 欧美性suv| 一级性生活视频| 亚洲精品999| 亚洲乱亚洲高清| 久久精品国产亚洲a∨麻豆| 国产精品伦子伦免费视频| 成人欧美一区二区三区黑人麻豆| 视频一区中文字幕精品| av片中文字幕| 久久99视频精品| 日本一区二区三区在线不卡| 秋霞一区二区| 中文字幕天天干| 7777精品视频| 一区二区三区美女| av伊人久久| 国产裸舞福利在线视频合集| 俄罗斯精品一区二区| 欧美日韩国产免费| 日韩精品91亚洲二区在线观看| 波多野结衣中文字幕久久| 毛片在线视频观看| 中文字幕日韩有码| 欧美经典三级视频一区二区三区| 亚洲大片精品免费| 日本不卡免费播放| 热舞福利精品大尺度视频| 日韩国产精品一区| 久久综合九色综合97婷婷| 欧美午夜18电影| 久草在线免费福利资源| 免费国产一区二区| 亚洲午夜未删减在线观看 | 亚洲最新在线| 亚洲国产福利在线| 成人性视频网站| 日韩三区四区| 高清hd写真福利在线播放| 国产精品免费视频xxxx| 在线免费av一区| 蜜臀av性久久久久蜜臀aⅴ| 经典三级一区二区| 麻豆一区二区三区视频| 成人免费淫片aa视频免费| 欧美一区二区成人| 99久久精品国产一区二区三区| 加勒比色老久久爱综合网| 四虎影视2018在线播放alocalhost| 欧美自拍资源在线| 中文字幕日韩精品有码视频| 国产精品毛片久久久久久久| 水蜜桃久久夜色精品一区| 中文字幕资源网在线观看| 国产老熟妇精品观看| 国产精品一区av| 日韩欧美国产麻豆| 久久在线免费观看| 久久国产精品亚洲人一区二区三区| 欧美18一19xxx性| 黄在线观看网站| 91亚洲永久免费精品| 亚洲免费高清视频| 亚洲免费观看高清在线观看| aa国产精品| 先锋影音网一区二区| 中文av在线播放| 国产精品夜夜夜爽张柏芝| 欧美激情成人在线视频| 欧美伊人久久久久久久久影院| 国内精品国产三级国产a久久| 日本欧美高清| av在线free| 福利视频网站| 亚洲欧洲精品在线 | 香蕉久久一区| 九九在线视频| 无码人妻丰满熟妇区96| 高清国产在线一区| 久久精品国产亚洲精品| 欧美精品欧美精品系列| 亚洲人精品一区| 成人美女在线视频| 免费精品视频|