国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 操作系統(tǒng) > 正文

二:shell之bash變量

2024-06-28 14:32:02
字體:
供稿:網(wǎng)友

1.變量的分類;


用戶自定義變量:   變量自定義 默認(rèn)存儲(chǔ)是字符串
環(huán)境變量:              這種變量中主要保存的是和系統(tǒng)操作環(huán)境相關(guān)的數(shù)據(jù)。變量可以自定義,但是對(duì)系統(tǒng)生效的環(huán)境變量名和變量作用是固定的
位置參數(shù)變量:      這種變量主要是用來向腳本當(dāng)中傳遞參數(shù)或數(shù)據(jù)的,變量名不能自定義,變量作用是固定的
預(yù)定義變量:          是bash中已經(jīng)定義好的變量,變量名不能自定義,變量作用也是固定的

2.用戶自定義變量

1.定義變量
        格式:變量名稱=變量值(=左右不能加空格)
 例如:
        x=5 就定義了一個(gè)叫 x 的變量
       注意 5 是字符,不是數(shù)字,不能加減乘除。
      name="hello world"

2.變量調(diào)用
   在變量名之前加一個(gè) $表示變量的值
        例如:輸出變量的值
           echo $x
           echo $name

3.變量疊加
     x=123
     x="$x"456 或  x=${x}456

4.變量查看
      set 會(huì)顯示當(dāng)前系統(tǒng)中所有運(yùn)行的變量
      set -u 如果設(shè)定此選項(xiàng),調(diào)用未聲明變量時(shí)會(huì)報(bào)錯(cuò)(默認(rèn)無任何提示)

5.刪除變量
     unset 變量名
     例如:unset name

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

1.環(huán)境變量與用戶自定義變量的區(qū)別
         環(huán)境變量是全局變量,用戶自定義變量是局部變量。
         用戶自定義變量只在當(dāng)前的 shell 中生效,環(huán)境變量在當(dāng)前 shell 和這個(gè) shell 的所有子 shell 中生效。
         用戶可以自定義環(huán)境變量,但對(duì)系統(tǒng)生效的環(huán)境變量名和變量作用是固定的。

2.用戶自定義環(huán)境變量
         export 變量名=變量值

        變量名=變量值
        export 變量名

3.查看環(huán)境變量
       set 查看所有變量
       env 查看環(huán)境變量

4.刪除環(huán)境變量
      unset 環(huán)境名

5.常用的環(huán)境變量
         HOSTNAME:主機(jī)名
         SHELL:當(dāng)前的 shell
         TERM:終端環(huán)境
         HISTSIZE:歷史命令條數(shù)
         SSH_CLIENT:當(dāng)前操作環(huán)境是用 ssh 連接的,這里記錄客戶端 ip
         SSH_TTY:ssh 連接的終端是 pts/1
         USER:當(dāng)前登錄的用戶
         PATH:系統(tǒng)搜索命令的路徑
要想直接通過腳本名執(zhí)行自己的腳本:
(1)將腳本拷貝至 PATH 中的任意目錄下(不建議這樣做),例如:
          cp hello.sh /bin/
(2)將腳本所在目錄添加到 PATH 變量中,例如:
          PATH="$PATH":/root/sh 但系統(tǒng)重啟后失效(用的是變量疊加)
PS1:命令提示符設(shè)置
      /d:顯示日期,格式為"星期 月 日"
      /H:顯示完整的主機(jī)名
      /t:顯示 24 小時(shí)制時(shí)間,格式為"HH:MM:SS"
      /A:顯示 24 小時(shí)制時(shí)間,格式為"HH:MM"
      /u:顯示當(dāng)前用戶名
      /w:顯示當(dāng)前所在目錄的完整名稱
      /W:顯示當(dāng)前所在目錄的最后一個(gè)目錄
      /$:提示符。root 用戶為"#",普通用戶為"$"

6:語系變量

    環(huán)境變量中的語系變量
    locale          #查詢當(dāng)前系統(tǒng)語系
    LANG        #定義系統(tǒng)主語系的變量
    LC_ALL #定義整體語系的變量
    echo $LANG #查看系統(tǒng)當(dāng)前語系
    locale -a | more
   #查看linux支持的所有語系

查看默認(rèn)語系
     cat /etc/sysconfig/i18n
顯示:
     LANG="zh_CN.UTF-8"
#表示開機(jī)默認(rèn)就是中文語系UTF-8編碼

4.位置參數(shù)變量

1.位置參數(shù)變量
         $n:n 為數(shù)字,$0 代表命令本身,$1-$9 代表第一到第九個(gè)參數(shù),十以上的參數(shù)需要用大括號(hào)包含,如 ${10}。
         $*:這個(gè)變量代表命令行中所有的參數(shù),$* 把所有的參數(shù)看成一個(gè)整體。
         $@:這個(gè)變量也代表命令行中所有的參數(shù),不過 $@ 把每個(gè)參數(shù)區(qū)分對(duì)待。
         $#:這個(gè)變量代表命令行中所有參數(shù)的個(gè)數(shù)。

2.例子1:
 #!/bin/bash
     num1=$1
     num2=$2
     sum=$(($num1+$num2)) 
#變量 sum 的和是 num1 加 num2
    echo $sum 
#打印變量 sum 的值

執(zhí)行腳本:
    ./test.sh   45 76

3.例子2
     #!/bin/bash
     echo "A total of $# parameters"
                                         #使用 $# 代表所有參數(shù)的個(gè)數(shù)
     echo "The parameters is:$*"
                                        #使用 $* 代表所有的參數(shù)
     echo "The parameters is:$@"
                                        #使用 $@ 代表所有的參數(shù)

執(zhí)行腳本:
           ./test.sh 11 22 33 44

4.例子3:$* 與 $@ 的區(qū)別
#!/bin/bash
for i in "$*"
                         # $* 中所有參數(shù)看成是一個(gè)整體,所以這個(gè) for 循環(huán)只會(huì)循環(huán)一次
do
echo "The parameters is:$i"
done

for y in "$@"
                 # $@ 中每個(gè)參數(shù)都看成是獨(dú)立的,所以 $@ 中有幾個(gè)參數(shù),就會(huì)循環(huán)幾次
do
echo "Parameter:$y"
done

5.預(yù)定義變量

預(yù)定義變量:
  1.$?:最后一次執(zhí)行的命令的返回狀態(tài)。
     如果這個(gè)變量的值為0,證明上一個(gè)命令正確執(zhí)行;

     如果這個(gè)變量的值為非0(具體是哪個(gè)數(shù),由命令自己來決定),則證明上一個(gè)命令執(zhí)行不正確了。
2.$$:當(dāng)前進(jìn)程的進(jìn)程號(hào)(PID)。
3.$!:后臺(tái)最后一個(gè)運(yùn)行的進(jìn)程的進(jìn)程號(hào)(PID)。

接收鍵盤輸入:
    read [選項(xiàng)] [變量名]
    選項(xiàng):
        -p "提示信息":在等待read輸入時(shí),輸出提示信息
        -t 秒數(shù):read命令會(huì)一直等待用戶輸入,使用此選項(xiàng)可以指定等待時(shí)間
        -n 字符數(shù):read命令只接受指定的字符數(shù),就會(huì)執(zhí)行
        -s:隱藏輸入的數(shù)據(jù),適用于機(jī)密信息的輸入

read.sh:
#!/bin/bash

read -p "please input your name:" -t 30 name
echo $name

read -p "please input your passwd:" -s passwd
echo -e "/n"
echo $passwd

read -p "please input your sex [M/F]:" sex
echo -e "/n"
echo $sex


上一篇:一:Shell基礎(chǔ)

下一篇:UserAddcommand

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔江区| 酒泉市| 永定县| 上高县| 乌兰察布市| 蓬溪县| 织金县| 自治县| 常宁市| 高雄县| 石屏县| 灵璧县| 惠来县| 那曲县| 安西县| 沙坪坝区| 射阳县| 福清市| 巫溪县| 通辽市| 房产| 望谟县| 屏南县| 道孚县| 宁陵县| 共和县| 德清县| 屯昌县| 虹口区| 新宁县| 卓尼县| 乌苏市| 忻州市| 太康县| 苍山县| 鄂伦春自治旗| 安化县| 武乡县| 荥经县| 乾安县| 遂宁市|