shell腳本的使用該熟練起來了,你說呢?(篇三)

2020-12-11 酷扯兒

本文轉載自【微信公眾號:羽林君,ID:Conscience_Remains】經微信公眾號授權轉載,如需轉載與原文作者聯繫

shell echo

Shell echo命令

Shell 的 echo 指令與 PHP 的 echo 指令類似,都是用於字符串的輸出。命令格式:

echo string

您可以使用echo實現更複雜的輸出格式控制。

1.顯示普通字符串:

echo "It is a test"

//這裡的雙引號完全可以省略,以下命令與上面實例效果一致

echo It is a test

2.顯示轉義字符

echo "\"It is a test\""

結果將是:

同樣,雙引號也可以省略

3.顯示變量

read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變量

read

name

echo "$name It is a test"

以上代碼保存為hello_shell.sh,name 接收標準輸入的變量,結果將是:

4.顯示換行

echo -e "OK! \n" # -e 開啟轉義

輸出結果:

5.顯示不換行

echo -e "OK! \c" # -e 開啟轉義 \c 不換行

6.顯示結果定向至文件

echo "It is a test" > lynfile

./hello_shell.sh 執行腳本,當前目錄下就會生成一個 lynfile 文件,裡面的內容為It is a test

7.原樣輸出字符串,不進行轉義或取變量(用單引號)

echo '$name\"'

8.顯示命令執行結果

echo `date`

注意: 這裡使用的是反引號 `, 而不是單引號 '。

結果將顯示當前日期

shell printf

Shell printf 命令

我們學習了 Shell 的 echo 命令,我們再來學習 Shell 的另一個輸出命令 printf。

printf 命令模仿 C 程序庫(library)裡的 printf() 程序。

printf 由 POSIX 標準所定義,因此使用 printf 的腳本比使用 echo 移植性好。

printf 使用引用文本或空格分隔的參數,外面可以在 printf 中使用格式化字符串,還可以制定字符串的寬度、左右對齊方式等。默認 printf 不會像 echo 自動添加換行符,我們可以手動添加 \n。

printf 命令的語法:

printf format-string [arguments...]

參數說明:

format-string: 為格式控制字符串arguments: 為參數列表。實例如下:

echo "echo Hello, Shell" lyn, action

printf "printf Hello, Shell\n" lyn, action

接下來,我來用一個腳本來體現printf的強大功能:

printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg

printf "%-10s %-8s %-4.2f\n" 張三 男 66.1234

printf "%-10s %-8s %-4.2f\n" 李四 男 48.6543

printf "%-10s %-8s %-4.2f\n" 王五 女 47.9876

執行腳本,輸出結果如下所示:

更多實例:

# format-string為雙引號

printf "%d %s\n" 1 "abc" # 單引號與雙引號效果一樣

printf '%d %s\n' 1 "abc"

# 沒有引號也可以輸出

printf %s abcdef

printf "\n"

# 格式只指定了一個參數,但多出的參數仍然會按照該格式輸出,format-string 被重用

printf "%s\n" abc def

printf "%s %s %s\n" a b c d e f g h i j

# 如果沒有 arguments,那麼 %s 用NULL代替,%d 用 0 代替

printf "%s and %d \n"

printf的轉義序列

實例

printf "a string, no processing:<%s>\n" "A\nB"

printf "a string, no processing:<%b>\n" "A\nB"

printf "www.baidu.com \a"

輸出結果為:

shell 文件包含

Shell 文件包含

和其他語言一樣,Shell 也可以包含外部腳本。這樣可以很方便的封裝一些公用的代碼作為一個獨立的文件。

Shell 文件包含的語法格式如下:

. filename # 注意點號(.)和文件名中間有一空格

source filename

創建兩個 shell 腳本文件。

url.sh 代碼如下:

#!/bin/bash

url="http://www.baidu.com"

url_read.sh 代碼如下:

#使用 . 號來引用url.sh 文件

#. ./url.sh

# 或者使用以下包含文件代碼

source ./url.sh

echo "官網地址:$url"

接下來,我們為 url_read.sh 添加可執行權限並執行:

註:被包含的文件 url.sh 不需要可執行權限。

這就是我分享的shell腳本,其中參考了很多人的文章,如果大家有什麼更好的思路,也歡迎分享交流哈。

相關焦點

  • shell腳本的使用該熟練起來了,你說呢?(篇一)
    中間邏輯如下所示:shell 腳本可以和許多外部命令行工具結合起來完成信息查詢、簡化文本處理、調度任務運行時間、生成報表以及發送郵件之類的工具。使用 Shell 的熟練程度反映了用戶對 Linux 的掌握程度,運維工程師、網絡管理員、程式設計師都應該學習 Shell。
  • shell腳本的使用該熟練起來了,你說呢?(篇二)
    n 代表一個數字,1 為執行腳本的第一個參數,2 為執行腳本的第二個參數,以此類推……實例以下實例我們向腳本傳遞三個參數,並分別輸出,其中 $0 為執行的文件名(包含文件路徑):echo "Shell 傳遞參數實例!"
  • shell腳本極簡教程
    因此,對於用戶來說,shell是最重要的實用程序,深入了解和熟練掌握shell的特性極其使用方法,是用好Unix/Linux系統的關鍵。可以說,shell使用的熟練程度反映了用戶對Unix/Linux使用的熟練程度。
  • Shell腳本編程總結及速查手冊
    Shell與Shell語言上面說了Shell是一種程式語言但你可能也聽說過: sh/bash/csh/zsh/…它們也叫Shell, 實際上這裡所說的Shell是一種應用程式, 它負責解釋執行你編寫的Shell腳本, Mac默認就自帶了sh/bash/csh/zsh/tcsh/ksh, 你可以這樣查看cat
  • SHELL腳本必知必會
    因為很多單行的shell命令不是那麼淺顯易懂,沒有注釋的話在維護起來會讓人尤其的頭大。注釋的意義不僅在於解釋用途,而在於告訴我們注意事項,就像是一個README。這裡還尤其需要注意一點,就是當我們是在windows下用utf-8編碼來寫shell腳本的時候,一定要注意這個utf-8是否是有BOM的。默認情況下windows判斷utf-8格式是通過在文件開頭加上三個EF BB BF字節來判斷的,但是在Linux中默認是無BOM的。因此如果我們是在windows下寫腳本的時候,一定要注意將編碼改成Utf-8無BOM,一般用notepad++之類的編輯器都能改。
  • 什麼是Shell腳本?為什麼要學習Shell?
    Shell腳本語言是實現Linux/UNIX系統管理及自動化運維所必備的重要工具, Linux/UNIX系統的底層及基礎應用軟體的核心大都涉及Shell腳本的內容。每一個合格 的Linux系統管理員或運維工程師,都需要能夠熟練地編寫Shell腳本語言,並能夠閱 讀系統及各類軟體附帶的Shell腳本內容。
  • 《Linux shell腳本攻略》限免
    任何初學者都可以在網上輕鬆獲取Linux、Linux shel相關的基礎教程,而就如何運用shell來解決現實世界中的問題,相關的知識和技巧大多都散落在論壇或博客中,要麼不夠全面系統,要麼不易查找。如果你也有此煩惱,不如看看《Linux shell腳本攻略》這本書。
  • Linux——Shell腳本的應用1(基礎)
    (同時shell 性能極低,但是和作業系統關係緊密,一般如果是和系統相關的簡單操作使用shell書寫,不用來做數據處理、開發應用。)常見的shell解釋器程序有很多種,使用不同的shell腳本是,其內部指令、命令提示等方面會存在一些區別。可以通過查看/etc/shells文件了解當前系統所支持的shell腳本種類。
  • 編寫Linux Shell腳本的最佳實踐
    前言 由於工作需要,最近重新開始拾掇shell腳本。雖然絕大部分命令自己平時也經常使用,但是在寫成腳本的時候總覺得寫的很難看。而且當我在看其他人寫的腳本的時候,總覺得難以閱讀。
  • Linux shell腳本編程入門系列一:認識shell腳本
    1、什麼是shell腳本將多個shell命令按語法組合在一起,並保存在文本文件中即得到我們所說的shell腳本(shell script)。shell腳本可以方便地與系統交互,完成系統管理以及批處理任務。shell處於作業系統與應用之間,起到橋梁的作用。
  • linux shell 腳本入門
    Linux 腳本編寫基礎1.1 語法基本介紹1.1.1 開頭程序必須以下面的行開始(必須方在文件的第一行):#!/bin/sh符號#!用來告訴系統它後面的參數是用來執行該文件的程序。在這個例子中我們使用/bin/sh來執行程序。當編輯好腳本時,如果要執行該腳本,還必須使其可執行。
  • Shell編程實戰練習,(BAT內部使用)!
    01SHELL腳本及Hello World要熟練掌握Shell程式語言,需要大量的練習,初學者可以用Shell列印「Hello World」字符,寓意著開始新的啟程!如下為第一個Shell編程腳本,腳本名稱為:first_shell.sh,代碼內容如下:First_shell.sh腳本內容詳解如下:Shell腳本編寫完畢,如果運行該腳本,運行用戶需要有執行權限,可以使用chmod o+x first_shell.sh賦予可執行權限。然後.
  • 【shell】shell 腳本編程基礎
    初識1.1 第一個 shell 腳本1.2 運行 shell 腳本的兩種方法2. 變量2.1 變量2.2 字符串2.3 數組2.4 注釋3. 傳遞參數4.變量2.1 變量定義變量時,變量名不加 $ ,並且賦值號兩邊不能有空格,使用變量時需要在變量名前加 $ ,並最好用 {} 將變量名包含起來。變量命名規則與一般標識符規則相同。#!
  • 為什麼Shell腳本執行不成功?原來是這樣
    還有的小夥伴自己學習linux的時候,看到網上一段不錯的代碼,複製下來想用下,可是怎麼都用不起來,就怪代碼不全或者作者騙人。其實,Shell腳本的書寫和執行都有很多注意事項的,因為我們平時使用的少,所以沒有注意到,今天小編就帶大家來一一熟悉下吧!1、「#!」使用有講究#!
  • Linux中Shell腳本基礎筆記
    shell腳本都是以"#!"作為開頭。這是腳本開始的標記,它是告訴linux系統執行該腳本文件需要使用相應的解釋器,緊挨著的/bin/bash指定了解釋器的具體路徑。shell主要用#作為注釋標記。後面可以加腳本的注釋,建議寫shell腳本要根據情況多寫注釋,便於以後腳本的維護。shell腳本的運行方式:1、可以在shell腳本第一行加上"#!/bin/bash"的話。可以按照以下方式執行:bash test.sh #要保證目錄中存在該腳本文件。2、給腳本加上可執行的權限,然後使用".
  • 平常使用shell腳本的一些知識點分享
    5. grep過濾多個參數實例:PRO_NAME=ProbeIPTVgrep -E "$PRO_NAME|System"6.shell字符串截取我遇到的問題是這樣的,top查看進程信息之後,截取到指定的內存,比如說是 17638K,後面我需要計算這個數值,所以我希望去掉 K,只保留 17638,shell腳本中的字符串截取一步就可以做到。
  • 精心匯總的 24 道 shell 腳本面試題
    ,但是很多企業在找Linux雲計算工程師的時候還是會問到 shell 腳本的問題,它有助於你在工作環境中自動完成很多任務。fifiQ:6 shell腳本中「$?」標記的用途是什麼?答:在寫一個shell腳本時,如果你想要檢查前一命令是否執行成功,在if條件中使用「$?」可以來檢查前一命令的結束狀態。
  • 軟體特攻隊|shell腳本小技巧,教你寫出健壯可靠的腳本
    作為一個程式設計師,寫shell腳本是常有的事。然而什麼樣的shell腳本?什麼態度去寫shell腳本?是我們需要思考的事。如果抱著能跑就行的態度,也許很容易,但是從腳本的健壯性和可靠性上出發,那麼就不是一件容易的事,以下是幾點小技巧。1、語法檢查這是最基本的一點,寫shell腳本時,最有效的就是使用相應的工具進行語法自動補全,自動檢查。
  • Linux命令行與Shell腳本編程學習21
    有兩種格式可以用來在bash shell腳本中創建函數。第一種格式採用關鍵字function,後跟分配給該代碼塊的函數名:Gunction name {commands}name屬性定義了賦予函數的唯一名稱。commands是構成函數的一條或多條bash shell命令。
  • Linux——Shell腳本中自定義變量的應用(基礎)2
    Shell腳本的應用2(基礎)簡介:這篇文檔為shell腳本變量的應用,詳細講解了自定義變量上篇文檔的連結地址:Linux——Shell腳本的應用1(基礎),也是shell腳本的基礎內容,可以通過連結地址查看。