shell指令碼工具之變數

2021-09-04 04:07:30 字數 2112 閱讀 3233

shell中的變數型別分為環境變數,位置變數,特殊變數以及使用者自定義變數,每種變數都有其特殊的功能.

系統變數:是由系統預設的變數,部分變數的值是由系統預設指定

位置變數:是根據在命令列的引數與命令列中的每乙個引數關聯

特殊變數:與環境變數相似

自定義變數:由使用者自己定義的變數,並賦值

一.系統變數(全部大寫)

[root@tong1 ~]# echo $home      --顯示當前使用者的根目錄

/root

[root@tong1 ~]# echo $path      --顯示命令的目錄

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/protobuf-2.5.0/bin:/root/bin

[root@tong1 ~]# echo $logname    --顯示登陸名

root

[root@tong1 ~]# echo $uid        --顯示當前使用者登陸的uid

0[root@tong1 ~]# echo $shell      --顯示當前使用者的shell

/bin/bash

[root@tong1 ~]# 

二.位置變數

變數格式:

$命令   引數1   引數2   引數3 ...........

$0         --顯示檔案本身

$1         --對應第乙個引數

$2         --對應第二個引數

[root@tong1 ~]# cat 1.sh       --如果值比變數多就為空

#!/bin/bash

echo $0 $1 $2 $3

[root@tong1 ~]# ./1.sh  9 8 7 6 5 4

./1.sh 9 8 7

[root@tong1 ~]# cat 1.sh              --用迴圈的方式讀取變數

#!/bin/bash

echo "---------------------"

while [ $# -gt 0 ]

doecho "當前位置變數:$*"

shift

done

echo "----------------------"

[root@tong1 ~]# ./1.sh 9 8 7 6 5 4

---------------------

當前位置變數:9 8 7 6 5 4

當前位置變數:8 7 6 5 4

當前位置變數:7 6 5 4

當前位置變數:6 5 4

當前位置變數:5 4

當前位置變數:4

----------------------

[root@tong1 ~]#

三.特殊變數

$#              --實際引數的個數

$*              --所有變數的值

$!              --上乙個命令對應的程序號

$?              --上乙個命令執行後的狀態

$$              --當前程序的pid

[root@tong1 ~]# cat 1.sh

#!/bin/bash

echo "---------------------"

echo "引數的個數:$#"

echo "引數的值:$*"

echo "前三個引數:$1,$2,$3"

echo "退出的狀態:$?"

echo "pid號:$$"

echo "----------------------"

[root@tong1 ~]# ./1.sh 9 8 7 6 5 4

---------------------

引數的個數:6

引數的值:9 8 7 6 5 4

前三個引數:9,8,7

退出的狀態:0

pid號:3922

----------------------

[root@tong1 ~]#

四.使用者自定義變數

declare和typeset都可以給變數賦值

Shell指令碼之 變數

與編譯型語言不同,shell指令碼是一種解釋型語言。執行這類程式時,直譯器 interpreter 需要讀取我們編寫的源 source code 並將其轉換成目標 object code 再由計算機執行。linux預設的指令碼解析器是bash。參考資料 第乙個shell指令碼 下面演示我們的第乙個s...

shell指令碼之變數替換

shell提供了變數替換功能,使使用者能夠檢查變數的值並根據選項改變它的值。variable 儲存在variable中的值 儲存在variable中的值 如果variable的值非空,則值為variable,否則值為string 如果variable的值非空,則值為string,否則值為空 如果va...

Shell之變數操作

1.定義變數 為了避免與環境變數衝突,一般用小寫 如pp mydql,kdkfeof 第二賦值方案 呼叫變數使用 符號 變數疊加 2.輸出採用echo,如上圖所示 3.變數分類 自定義變數和環境變數。4.檢視 set 檢視所有變數及其值 5.刪除變數 unset 變數名,如 6.作用範圍 自定義變數...