欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

bash shell腳本常用代碼記錄

冬至子 ? 來源:CSDN ? 作者:谷公子 ? 2023-06-01 17:49 ? 次閱讀

任何編程語言,常用的語法和代碼結(jié)構(gòu)其實(shí)不多的,如果為了快速的掌握入手一門編程語言,我認(rèn)為只需要把該語言的常見語法和代碼記下來,再結(jié)合實(shí)際需求去拼接成新的代碼。這篇博客主要是記錄bash shell的一些用法,便于日后復(fù)習(xí)。所以這篇博客不會(huì)一次性寫完的,會(huì)不斷更新新的例子進(jìn)來。

shell不是具體哪一款程序,它是一類程序的統(tǒng)稱,這些程序只要能夠按照用戶的要求去調(diào)用操作系統(tǒng)接口,就可以稱之為shell程序。常用shell程序有:bash, csh, tcsh, zsh等。

當(dāng)我們?cè)?a target="_blank">linux內(nèi)打開一個(gè)terminal,此時(shí)就開啟了一個(gè)shell程序供我們與操作系統(tǒng)進(jìn)行交互??梢栽O(shè)置具體是開啟了哪一款shell程序。

1. 列出當(dāng)前l(fā)inux系統(tǒng)安裝的所有shell

在terminal內(nèi)執(zhí)行:cat /etc/shells,結(jié)果如下:

image.png

linux系統(tǒng)中當(dāng)前安裝的所有shell的列表存儲(chǔ)在系統(tǒng)的/etc文件夾的"shells"文件中。默認(rèn)情況下它具有只讀權(quán)限,并且每當(dāng)我們?cè)谙到y(tǒng)中安裝新shell時(shí)都會(huì)自動(dòng)修改它。

2. 查看當(dāng)前使用的shell

在terminal內(nèi)執(zhí)行:echo $SHELL,結(jié)果如下圖:

image.png

3. 查看bash的手冊(cè)

在terminal內(nèi)執(zhí)行:man bash

4. 定義變量和使用變量

變量名不需要聲明,直接這樣寫:variable_name=variable_value。使用變量需要用$放在variable_name前就行,比如:

var="define variable"
echo $var

5. 注釋

單行注釋使用#號(hào)

多行注釋可以通過在<< COMMENT和COMMENT之間加上注釋

# echo $var
 
< < comment
export var
test comment
echo "somethin"
comment

6. Bash腳本第一行

Bash腳本文件的第一行必須是:#!/bin/bash。#!稱為shebang,該行的其余部分是解釋器的路徑,用于指定bash shell在操作系統(tǒng)中的位置。

She Bang(#!)是一個(gè)字符序列,由腳本開頭的符號(hào)(#)和感嘆號(hào)(!)組成。在類似Unix的操作系統(tǒng)下,當(dāng)帶有shebang的腳本作為程序運(yùn)行時(shí),程序加載器會(huì)將第一行的其余行解析為解釋器指令。因此,SheBang表示執(zhí)行腳本行的解釋器,并且它被稱為執(zhí)行各種腳本(如Bash,Python等)的路徑指令。

shebang的格式很重要,格式不正確會(huì)導(dǎo)致命令工作不正常。因此,在創(chuàng)建腳本時(shí),要始終記住SheBang格式的這兩點(diǎn):

  • 它應(yīng)該始終在腳本的第一行。
  • 在#!和解釋器的路徑之間,#之前不應(yīng)有任何空格。

7. 字符串和引號(hào)

Bash使用空格來確定單獨(dú)的項(xiàng)目,引號(hào)可用于處理帶有空格字符的文本。引號(hào)分為單引號(hào)和雙引號(hào)。使用簡單的文本和字符串時(shí),使用單引號(hào)和雙引號(hào)沒任何區(qū)別。但如果需要對(duì)shell變量擴(kuò)展,則只能使用雙引號(hào)。如果在單引號(hào)中使用變量,則不會(huì)將其視為變量。例子如下:

Bash script:
var="define variable"
echo "The value is $var"
echo 'The value is $var'
 
The result is:
The value is define variable
The value is $var

8. Bash變量

變量名可以包含字母、數(shù)字和下劃線,并且其名稱只能以字母和下劃線開頭。不能定義以任何數(shù)字開頭的變量。Bash變量不必在變量聲明時(shí)定義變量的數(shù)據(jù)類型。Bash變量是無類型的,只需通過分配其值來鍵入變量名稱,它會(huì)自動(dòng)判斷數(shù)據(jù)類型。如果將數(shù)字值分配給變量,它將自動(dòng)轉(zhuǎn)為整數(shù)工作,如果將字符值分配給該變量,則它將轉(zhuǎn)為字符串類型。

  • 在讀取或打印變量時(shí),需要在變量名前加上美元($)符號(hào);
  • 給變量賦值時(shí),省略美元符號(hào)($);且變量名稱和值之間的等號(hào)(=)兩側(cè)不應(yīng)有空格。
  • 變量名稱區(qū)分大小寫:x和X視為兩個(gè)不同的變量;
  • 變量可以放在Bash腳本中的任何地方或命令行中,因?yàn)樵谶\(yùn)行時(shí),Bash會(huì)將其替換為其分配的值;
  • 不需要使用任何單引號(hào)或雙引號(hào)來定義具有單個(gè)字符串的變量。需要將多個(gè)單詞或字符串作為單個(gè)項(xiàng)輸入到變量中,需要使用引號(hào)。

例子如下:

The bash script:
var="define variable"
echo "The value is $var"
var=123456
echo "The value is $var"
var=variable
echo "The value is $var"
 
The result is:
The value is define variable
The value is 123456
The value is variable

9. 系統(tǒng)變量和用戶自定義變量

Shell或UNIX系統(tǒng)中都有兩種類型的變量:系統(tǒng)定義的變量和用戶定義的變量。

系統(tǒng)定義的變量是由操作系統(tǒng)本身創(chuàng)建和維護(hù)的預(yù)定義變量,通常是以大寫字母進(jìn)行定義的。要了解系統(tǒng)中有哪些系統(tǒng)變量的列表,在命令行或腳本中輸入命令:set,或env,或printenv。例子如下:

The bash script:
echo $BASH
echo $BASH_VERSION
echo $OSTYPE
 
The result is:
/bin/bash
4.2.46(2)-release
linux

用戶定義的變量是由用戶創(chuàng)建和維護(hù),通常這些變量以小寫形式定義,但不強(qiáng)制,也可以定義成大寫的。第8點(diǎn)已經(jīng)講過如何定義變量了,這里不說了。

10. 命令行參數(shù)

使用命令行參數(shù)可以給Bash腳本傳遞參數(shù)使腳本更具靈活性。在腳本運(yùn)行時(shí),以空格見間隔,跟在腳本名稱后面。在Bash中,以下特殊變量會(huì)記錄傳遞的參數(shù):

  • $0 - 指定要調(diào)用的腳本的名稱;
  • $1-$9 - 存儲(chǔ)前9個(gè)自變量的名稱,或可用作自變量的位置;
  • $# - 指定傳遞給腳本的參數(shù)總數(shù)(計(jì)數(shù));
  • $* - 通過將所有命令行參數(shù)連接在一起來存儲(chǔ)它們;
  • $@ - 將參數(shù)列表存儲(chǔ)為數(shù)組;
  • $? - 指定當(dāng)前腳本的進(jìn)程ID;
    • 指定最后一個(gè)命令或最近執(zhí)行過程的退出狀態(tài);
  • $! - 顯示最后一個(gè)后臺(tái)作業(yè)的ID;

例子如下:

The script is:
echo 'echo $0 is' $0
echo 'echo $1 is' $1
echo 'echo $2 is' $2
echo 'echo $3 is' $3
echo 'echo $4 is' $4
echo 'echo $5 is' $5
echo 'echo $6 is' $6
echo 'echo $# is' $#
echo 'echo $* is' $*
echo 'echo $@ is' $@
echo 'echo $? is' $?
echo 'echo $$ is' $$
echo 'echo $! is' $!
 
Run script: > >./test_bash.sh this is the first script
 
The result is:
echo $0 is ./test_bash.sh
echo $1 is this
echo $2 is is
echo $3 is the
echo $4 is first
echo $5 is script
echo $6 is
echo $# is 5
echo $* is this is the first script
echo $@ is this is the first script
echo $? is 0
echo $$ is 621356
echo $! is

在$@數(shù)組里的參數(shù)可以傳遞給其它數(shù)組并引用。

args=("$@")  
echo ${args[0]} ${args[1]} ${args[2]} ${args[3]}
 
The result is:
this is the first

11. 命令替換

命令替換允許命令的輸出替換命令本身。Bash通過在子shell環(huán)境中執(zhí)行命令并用命令的標(biāo)準(zhǔn)輸出替換命令,并刪除任何尾隨的換行符。常用的命令替換語法為:

語法1:將要替換的命令放在反引號(hào)里
variable_name=`command_name`  
variable_name=`command_name [option...] argument1 argument2...`  
語法2:將要替換的命令放在圓括號(hào)里,且以美元符號(hào)($)開頭
variable_name=$(command_name)  
variable_name=$(command_name [option...] argument1 argument2...)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    596

    瀏覽量

    27526
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    366

    瀏覽量

    23478
  • bash終端
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2013
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    shell腳本進(jìn)階】幾個(gè)常用shell進(jìn)階腳本

    shell腳本進(jìn)階】幾個(gè)常用shell進(jìn)階腳本
    的頭像 發(fā)表于 09-19 08:59 ?1975次閱讀
    【<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>進(jìn)階】幾個(gè)<b class='flag-5'>常用</b>的<b class='flag-5'>shell</b>進(jìn)階<b class='flag-5'>腳本</b>

    如何在bash shell腳本中使用變量

    如果你使用編程語言編寫過程序,那么一定接觸過變量。而在 bash 腳本的編寫時(shí),變量也是一個(gè)很重要的概念。今天我們分享一下如何在 bash 腳本中使用變量。
    發(fā)表于 12-02 16:32 ?2173次閱讀
    如何在<b class='flag-5'>bash</b> <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>中使用變量

    Linux中常用Shell腳本示例

    當(dāng)談?wù)撘痪€運(yùn)維工作中的常用 Shell 腳本時(shí),以下是一些實(shí)用的例子。
    發(fā)表于 09-08 09:42 ?657次閱讀

    shell腳本編寫之本地腳本的編寫和執(zhí)行

    用來指定使用的shell應(yīng)用;echo "my first shell !"為腳本中編寫的命令代碼。2、執(zhí)行在執(zhí)行腳本時(shí)
    發(fā)表于 08-28 09:36

    Shell腳本編程實(shí)驗(yàn)

    ,比較容易識(shí)別,led1.sh就知道是shell腳本程序)簡單作如下說明:第一行代碼:#!是一個(gè)約定的標(biāo)記,它告訴系統(tǒng)這個(gè)腳本需要什么解釋器來執(zhí)行,即使用哪一種
    發(fā)表于 10-22 18:25

    高級(jí)Bash 腳本編程指南

    高級(jí)Bash 腳本編程指南
    發(fā)表于 10-26 08:33 ?7次下載
    高級(jí)<b class='flag-5'>Bash</b> <b class='flag-5'>腳本</b>編程指南

    shell腳本常用的調(diào)試方法介紹

    shell 是用戶和操作系統(tǒng)交互的一個(gè)程序,經(jīng)常用于執(zhí)行一些自動(dòng)化或者重復(fù)繁瑣的任務(wù),現(xiàn)在所有的 Linux 系統(tǒng)基本都自帶了該程序,我們只需要編寫好shell腳本,直接執(zhí)行就可以了,
    的頭像 發(fā)表于 09-01 10:43 ?3340次閱讀

    【RT-Thread學(xué)習(xí)筆記】bash和dash-shell

    ? 最近在工作中遇到一個(gè)很奇葩的問題,就是一個(gè)嵌入式的SDK編譯,它里面執(zhí)行shell命令的時(shí)候,使用的dash shell來解析,而通常我們默認(rèn)用的是bash shell來解析;我按
    的頭像 發(fā)表于 07-30 13:49 ?1277次閱讀
    【RT-Thread學(xué)習(xí)筆記】<b class='flag-5'>bash</b>和dash-<b class='flag-5'>shell</b>

    Raspberry Pi Bash Shell 腳本簡介

      拋開潛在的麻煩不談,Bash 可以是一個(gè)非常強(qiáng)大的工具,讓您可以自動(dòng)執(zhí)行各種任務(wù)。在即將發(fā)表的文章中,我將展示如何使用 Bash 腳本以及一些硬件技巧來自動(dòng)化我的 Raspberry Pi 冷卻風(fēng)扇。
    的頭像 發(fā)表于 08-15 15:08 ?1281次閱讀
    Raspberry Pi <b class='flag-5'>Bash</b> <b class='flag-5'>Shell</b> <b class='flag-5'>腳本</b>簡介

    如何在bash shell腳本中接受參數(shù)

    終端命令通常包含一些參數(shù),在使用的時(shí)候可以提供不同的參數(shù)來確定命令的執(zhí)行方式。POSIX規(guī)范中包含了用于命令行接口的選項(xiàng)。這也是與最早的UNIX應(yīng)用程序建立的一個(gè)由來已久的約定,所以當(dāng)你在寫bash腳本的時(shí)候,需要知道如何在腳本
    的頭像 發(fā)表于 12-09 17:34 ?2774次閱讀

    分享249個(gè)拿來即用的shell腳本

    ? 由于腳本案例太多,在此僅展示部分,完整版領(lǐng)取方式請(qǐng)見文末 ? ? ? 249個(gè)拿來即用的shell腳本! ? 這249個(gè)Shell腳本
    的頭像 發(fā)表于 07-07 10:52 ?1229次閱讀
    分享249個(gè)拿來即用的<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>

    BASH shell腳本篇—條件命令

    這篇文章介紹下BASH shell中的條件相關(guān)的命令,包括:if, case, while, until, for, break, continue。
    的頭像 發(fā)表于 10-11 15:21 ?698次閱讀
    <b class='flag-5'>BASH</b> <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>篇—條件命令

    BASH shell腳本篇—函數(shù)

    函數(shù)是代碼重用的最重要方式。Bash函數(shù)可以定義為一組命令,在bash腳本中多次調(diào)用。
    的頭像 發(fā)表于 10-20 16:31 ?1204次閱讀

    BASH shell腳本篇—文件處理介紹

    Bash Shell腳本中,可以使用多種方法來對(duì)文件進(jìn)行操作,包括讀取文件或?qū)懭胛募?/div>
    的頭像 發(fā)表于 10-23 16:51 ?708次閱讀

    Shell腳本檢查工具ShellCheck介紹

    ShellCheck是一個(gè)用于bash/sh shell腳本的靜態(tài)分析工具,可以輔助檢查腳本語法錯(cuò)誤,給出建議增強(qiáng)腳本健壯性。
    的頭像 發(fā)表于 12-27 13:43 ?2279次閱讀
    <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>檢查工具ShellCheck介紹