国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Shell腳本的變量

這篇具有很好參考價值的文章主要介紹了Shell腳本的變量。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

shell腳本變量:

1.變量的介紹:

2.變量的作用:

3.變量的類型?:

4.自定義變量?:

(1)自定義變量命名要求:

(2)定義與查看變量:

(3)賦值時使用的引號?:

?編輯(4)從鍵盤輸入內(nèi)容為變量賦值:

(5) 變量的運算?:

(6)浮點數(shù)運算 :

5.環(huán)境變量:

1.環(huán)境變量介紹:

2.常用環(huán)境變量 :

3.環(huán)境變量:

4.環(huán)境變量配置文件?:

?5.只讀變量:

6位置變量:

7.預定義(狀態(tài))變量:


shell腳本變量:

1.變量的介紹:

保存將來會變化的數(shù)據(jù),即使數(shù)據(jù)變化,直接調用變量即可,各種 Shell 環(huán)境中都使用到了“變量”的概念。Shell 變量用來存放系統(tǒng)和用戶需要使用的特定參數(shù)(值),而且這些參數(shù)可以根據(jù)用戶的設定或系統(tǒng)環(huán)境的變化而相應變化。通過使用變量,Shell 程序能夠提供更加靈活的功能,適應性更強。

2.變量的作用:

用來存放系統(tǒng)和用戶需要使用的特定參數(shù)(值)

  • 變量名:使用固定的名稱,由系統(tǒng)預設或用戶定義

  • 變量值:能夠根據(jù)用戶設置、系統(tǒng)環(huán)境的變化而變化

3.變量的類型?:

  • 自定義變量:由用戶自己定義、修改和使用

  • 特殊變量:環(huán)境變量,只讀變量,位置變量,預定義變量

環(huán)境變量:由系統(tǒng)維護,用于設置工作環(huán)境
只讀變量:只可以讀取不可以更改
位置變量:通過命令行給腳本傳遞參數(shù)
預定義變量:Bash中內(nèi)置的一類變量,不能修改??? 有些規(guī)定好的變量 放在那里讓你使用?

4.自定義變量?:

(1)自定義變量命名要求:

  • 區(qū)分大小寫

  • 不能使程序中的保留字和內(nèi)置變量:如:if, for,hostname 命令 a=

  • 只能使用數(shù)字、字母及下劃線,且不能以數(shù)字開頭,注意:不支持短橫線 “ - ”,和主機名相反

  • 不要使用內(nèi)置的變量,使用英文盡量使用詞義通俗易懂,PATH

  • 大駝峰 StudentFirstName

  • 小駝峰 studentFirstName

  • 下劃線 student_name

name='value' 
變量名=變量值
直接字串:name='root'
變量引用:name="$USER"
命令引用:name=`COMMAND` 或者 name=$(COMMAND)
注意:變量賦值是臨時生效,當退出終端后,變量會自動刪除,無法持久保存,腳本中的變量會隨著腳本結束,也會自動刪除

變量引用:
$name
${name}

{}
弱引用和強引用
"$name " 弱引用,其中的變量引用會被替換為變量值
'$name' 強引用,其中的變量引用不會被替換為變量值,而保持原字符串

(2)定義與查看變量:

  • 定義變量

變量名以字母或下劃線開頭,區(qū)分大小寫,建議全大寫

變量名=變量值
  • 查看變量值
echo $變量名

?Shell腳本的變量,linux,運維,服務器?使用大括號{}定義變量的范圍,將變量名分隔出來

Shell腳本的變量,linux,運維,服務器刪除變量unset

Shell腳本的變量,linux,運維,服務器

(3)賦值時使用的引號?:

  • 雙引號" ":允許通過$符號引用其他變量值
  • 單引號' ':禁止引用其他變量值,$視為普通字符,
  • 反撇號``:命令替換,提取命令執(zhí)行后的輸出結果與$( )效果相同
  • {}可以分隔變量值
  • 定義變量時中間有特殊字符時 比如空格 用單引號或者雙引號括起來

Shell腳本的變量,linux,運維,服務器?定義變量時中間有特殊字符

Shell腳本的變量,linux,運維,服務器?單引號與$()

Shell腳本的變量,linux,運維,服務器(4)從鍵盤輸入內(nèi)容為變量賦值:

格式:read 變量名

  • read -p "提示內(nèi)容" 變量名?
  • read 變量名

Shell腳本的變量,linux,運維,服務器?



[root@localhost ~]# vim score.sh
--------------------------------------------------
#!/bin/bash
#輸出成績腳本
echo -n "請輸入你的成績:"
read score
echo $score
[root@localhost ~]# bash score.sh 
請輸入你的成績:99
99

?Shell腳本的變量,linux,運維,服務器Shell腳本的變量,linux,運維,服務器

(5) 變量的運算?:

expr只能進行整數(shù)的運算

格式: expr 變量1 運算符 變量2 [運算符 變量3]

運算符:

加法 +

減法 -

乘法 \ *

除法 /

取余 (取模)%

(1) let var=算術表達式
let sum=1+2
sum=1+2
(2) $((var=算術表達式)) 和上面等價
((sum=1+2))
echo $sum
(3) var= $[算術表達式]

(4) var=$(expr arg1 arg2 arg3 ...)
(5) var= `expr arg1 arg2 arg3 ...`
(6) echo '算術表達式' | bc

Shell腳本的變量,linux,運維,服務器

(6)浮點數(shù)運算 :

  • 使用bc計算器

echo "浮點運算字符串" | bc
echo "scale=小數(shù)位數(shù);浮點運算字符串" | bc

?Shell腳本的變量,linux,運維,服務器

?提取電腦系統(tǒng)信息腳本

提取系統(tǒng)信息
#!/bin/bash
RED="\E[1;31m"
GREEN="\E[1;32m"
END="\E[0m"


echo -e ?"$GREEN----------------------Host systeminfo--------------------$END"
echo -e ?"HOSTNAME: ? ? $RED`hostname`$END"
echo -e ?"IPADDR: ? ? ? $RED` ifconfig ens33|grep -Eo '([0-9]{1,3}\.){3}[0-9]
{1,3}' |head -n1`$END"
echo -e ?"OSVERSION: ? ?$RED`cat /etc/redhat-release`$END"
echo -e ?"KERNEL: ? ? ? $RED`uname -r`$END"
echo -e ?"CPU: ? ? ? ? $RED`lscpu|grep '型號名稱:'|tr -s ' '|cut -d : -f2`$END"
echo -e ?"MEMORY: ? ? ? $RED`free -h|grep Mem|tr -s ' ' : |cut -d : -f2`$END"
echo -e ?"DISK: ? ? ? ? $RED`lsblk |grep '^sd' |tr -s ' ' |cut -d " " -f4`$END"
echo -e ?"$GREEN---------------------------------------------------------$END"
~                                                                              

Shell腳本的變量,linux,運維,服務器

Shell腳本的變量,linux,運維,服務器?

5.環(huán)境變量:

1.環(huán)境變量介紹:

  1. 由系統(tǒng)提前創(chuàng)建,用來設置用戶的工作環(huán)境

  2. 可以使用env查看環(huán)境變量

  3. 需要記住的常用環(huán)境變量

2.常用環(huán)境變量 :

[root@localhost ftp]#env
#可以看到所有

?$USER 表示用戶名稱

$HOME 表示用戶的宿主目錄

$LANG 表示語言和字符集

$PWD 表示當前所在工作目錄

$PATH 表示可執(zhí)行用戶程序的默認路徑

#聲明并賦值
export name=VALUE
declare -x name=VALUE
#或者分兩步實現(xiàn)
name=VALUE
export name

Shell腳本的變量,linux,運維,服務器?

Shell腳本的變量,linux,運維,服務器?

系統(tǒng)可以通過$PATH 來執(zhí)行文件 PATH=$PATH:/root/
[root@localhost opt]# PATH=$PATH:/root/
[root@localhost opt]# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/

?

3.環(huán)境變量:

  • 可以使子進程(包括孫子進程)繼承父進程的變量,但是無法讓父進程使用子進程的變量

  • 一旦子進程修改從父進程繼承的變量,將會新的值傳遞給孫子進程

  • 一般只在系統(tǒng)配置文件中使用,在腳本中較少使用

4.環(huán)境變量配置文件?:

四個系統(tǒng)級的環(huán)境配置變量/etc/profile ?/etc/bashrc 或者(自己家目錄中的)/root/.bash_profile/ root/.bashrc .bash_profile ?/root/.bashrc

/etc/profile?
系統(tǒng)每次啟動都會自動執(zhí)行 /etc/profile 文件里的命令,這個文件是對全局有效的(所有的shell環(huán)境和用戶)

~/.bash_profile ~/.bashrc
不同用戶登錄系統(tǒng) 會自動執(zhí)行 自己家目錄中的 ~/.bash_profile 文件中的命令,自動執(zhí)行 ~/.bashrc ~/.bashrc 當前用戶每切換一個shell環(huán)境都會自動執(zhí)行

/etc/bashrc
/etc/bashrc 針對所有用戶的,用戶每切換一個shell環(huán)境都會自動執(zhí)行

[root@localhost ~]# vim /etc/profile
.....................省略到行末添加
export PATH=$PATH:/root
source立即生效或 .
[root@localhost opt]# source /etc/profile

修改系統(tǒng)默認的命令數(shù)
[root@localhost opt]# echo $HISTSIZE 
1000
[root@localhost opt]# vim /root/.bash_profile
export HISTSIZE=200
[root@localhost opt]# source /root/.bash_profile 
[root@localhost opt]# echo $HISTSIZE 
200

?5.只讀變量:

?

變量值不允許修改(重新賦值)的情況

法使用 unset刪除

最快方法重啟

[root@localhost opt]# name=ky15
[root@localhost opt]# readonly name
[root@localhost opt]# echo $name 
ky15
[root@localhost opt]# unset name
bash: unset: name: 無法反設定: 只讀 variable
#只有退出進程
[root@localhost opt]# echo $name 
ky15
[root@localhost opt]# name=ky
bash: name: 只讀變量

Shell腳本的變量,linux,運維,服務器

6位置變量:

位置變量也稱為位置參數(shù),使用$1、$2、$3、…、$9 表示

[root@test1 ~]# vim 1.sh      
#!/bin/bash
echo "$1"            位置1
echo "$2"            位置2
echo "${10}"         位置10
echo "$10"           位置1和0
echo "$*"            將所有項當成一個值
echo "$@"            所有項
echo "$0"            腳本自身
echo "$#"            后面參數(shù)的個數(shù)
[root@test1 ~]# ./1.sh {1..10}
1 
2
10
10
1 2 3 4 5 6 7 8 9 10

?Shell腳本的變量,linux,運維,服務器

?Shell腳本的變量,linux,運維,服務器

7.預定義(狀態(tài))變量:

bash 幫你定義好了 拿來用就可以了,你不需要知道為什么,記住

  • $*:表示所有位置參數(shù)的內(nèi)容看成一個整體返回 返回所有

  • $@:表示所有位置參數(shù)的內(nèi)容分割成n份,每份作為一個獨立的個體返回 返回所有

  • $?:表示前一條命令執(zhí)行后的返回狀態(tài),返回值為 0 表示執(zhí)行正確,返回任何非 0值均表示執(zhí)行出現(xiàn)異常

  • $#:表示命令行中位置參數(shù)的總個數(shù)

  • $0:表示當前執(zhí)行的腳本或程序的名稱 當前腳本的名字

  • $$:當前bash的進程id

  • $!: 后臺任務最后一個id

[root@localhost data]#bash test.sh {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
a b c d e f g h i j k l m n o p q r s t u v w x y z


[root@localhost data]#bash 1.sh {a..z}
at的結果是
a
[root@localhost data]#bash 2.sh {a..z}
星的結果是
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@localhost data]#cat 3.sh 
#!/bin/bash

echo $1



定義調用 變量
運算
read -p

預定義  $@  $*  $#  $0  $?  $$

``
''
""
{}
$()

?文章來源地址http://www.zghlxwxcb.cn/news/detail-821046.html

到了這里,關于Shell腳本的變量的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 服務器的shell腳本

    服務器的shell腳本

    shell腳本語句可以執(zhí)行l(wèi)inux的操作語句。 linux相當于網(wǎng)頁,shell相當于java。可以解釋編寫執(zhí)行邏輯。 shell的開頭以:#!bin/sh 定義解析方式,不同的linuxe內(nèi)核解釋方式不同。大多數(shù)內(nèi)核支持sh(bash)方式。 執(zhí)行sh文件可以有多種方式: ? ? ? ? ? ? sh?a.sh ????????bash a.sh ??

    2024年02月14日
    瀏覽(44)
  • Shell腳本常用命令及如何通過shell腳本實現(xiàn)服務器上文件的上傳和下載

    Shell腳本常用命令 簡介 1、什么是shell: Shell 是一個用 C 語言編寫的應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統(tǒng)內(nèi)核的服務。Shell 腳本(shell script),是一種為 shell 編寫的腳本程序,擴展名為.sh。 2、如何編寫shell腳本: 文本編輯器(可以使用

    2024年02月03日
    瀏覽(31)
  • shell腳本實現(xiàn)刪除服務器指定目錄下文件方法

    上述腳本中,find 命令用于查找指定目錄下4天以前的文件,并將其刪除。其中,-type f 表示只查找普通文件,不包括目錄和符號鏈接等其他類型的文件;-mtime +3 表示查找修改時間早于3天前的文件;-delete 表示刪除查找到的文件。 腳本中的 $folder_path 可以替換為實際的目錄路徑

    2023年04月19日
    瀏覽(23)
  • shell腳本使用(宿主機windows-服務器-centos)--用于使用shell腳本方式控制docker容器

    shell腳本使用(宿主機windows-服務器-centos)--用于使用shell腳本方式控制docker容器

    需求: 我想要使得windows上編寫shell腳本,并且在這個shell腳本在linux中也可用 shell腳本在windows上無法直接運行,但是有WSL這個linux子系統(tǒng)的工具 可以使得shell腳本在主機上執(zhí)行 視頻講解連接 方式1 方式2

    2024年02月07日
    瀏覽(60)
  • VMware vCenter服務器常用的巡檢命令、運維命令和PowerShell腳本

    一、前言 最近整理一些VMware vCenter和Esxi常用的巡檢命令和運維命令如下: 二、巡檢命令 三、運維命令 運維常用命令: 四、Powershell腳本 以上就是vCenter和ESXi常用的運維與監(jiān)控命令,可以幫助vSphere管理員管理和監(jiān)控環(huán)境。

    2024年02月11日
    瀏覽(22)
  • 在SHELL腳本中用curl處理服務器開機、關機、強制關機、重啟動作

    思路:利用了一張主控板來獲取服務器的開關機狀態(tài),開關機其實是給服務器一個500ms~1000ms的脈沖,等同與按了機箱面板的開關機按鈕開關。

    2024年02月07日
    瀏覽(35)
  • 實現(xiàn)判斷服務器是否有git并拉取代碼的shell腳本

    判斷當前服務器是否有git,沒有的話使用yum install安裝,然后切換至普通用戶,創(chuàng)建目錄,并且進入新創(chuàng)建的目錄,git clone代碼

    2024年02月10日
    瀏覽(28)
  • shell 腳本統(tǒng)計 http 文件服務器下指定目錄及其子目錄下所有文件的大小

    shell腳本如下: 首先 vi calculate_size.sh 寫入下入內(nèi)容 執(zhí)行 sh calculate_size.sh http://example.com/some/dir/ 即可統(tǒng)計 http 文件服務器http://example.com/some/dir/ 中 dir 目錄及其子目錄下所有文件的大小。

    2024年02月15日
    瀏覽(29)
  • 運維 | 查看 Linux 服務器 IP 地址

    大多數(shù)在操作 Linux 系統(tǒng)時,我們經(jīng)常需要知道服務器的 IP 比便于后續(xù)的一系列操作,這時候有快速查看主機 IP 的命令行操作,能夠有效的幫助我們 本章節(jié)主要記錄一些常用查看服務器 IP 的命令,希望對大家有所幫助。 查看 Linux 服務器的 IP 地址的命令大體上有以下幾種。

    2024年04月27日
    瀏覽(103)
  • 【運維】Linux 跨服務器復制文件文件夾

    如果是云服務 建議用內(nèi)網(wǎng)ip scp是secure copy的簡寫,用于在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的??赡軙晕⒂绊懸幌滤俣?。當你服務器硬盤變?yōu)橹蛔x read only system時,用scp可以幫你把文件移出來

    2024年02月08日
    瀏覽(109)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包