shell基礎2

BASH變量

第一小節

變量設置規則

  1. 在bash中,變量的默認類型是字符串型。
  2. 變量用等號連接值,等號兩側不能有空格。
  3. 變量值中如果有空格,需要用單引號和雙引號包起來。
  4. 如果把命令的結果作爲變量值賦予變量,需要用反引號或$()包含命令。

變量分類

  1. 用戶自定義變量:只在當前的shell中生效。
  2. 環境變量:名字不能改,可以改值。也可以手工增加新的環境變量。在當前shell和子shell中生效。(除了把環境變量寫在配置文件中,就會在所有的shell中生效)
  3. 位置參數變量:不能新增新的變量,屬於預定義變量。
  4. 預定義變量,不能改變名字和值。

變量調用

echo $name

變量查看

set

變量刪除

unset name

第二小節 環境變量

設置環境變量

export 變量名=變量值#申明變量 如:
shell基礎2

env #查詢變量

PATH:系統查找命令的路徑。
PATH變量增加:"$PATH":/root/sh

shell基礎2

第三小節 位置參數變量

shell基礎2

例子:
shell基礎2
shell基礎2

第四小節 預定義變量

shell基礎2

  • find /root -name hello.sh &(&代表將這條命令放入後臺執行)

1.接受鍵盤輸入

read [選項][變量名]
選項:
-p “提示消息”:在等待read輸入時,輸出提示消息
-t 秒數 :等待用戶輸入的時間範圍設定
-n 字符數:接收指定的字符數,就會執行
-s :隱藏輸入的數據,可用作密碼的設定

第五小節 變量運算符

1. declare 聲明變量類型

declare [+/-][選項]變量名  declare -i c=$a+$b

選項:
-:給變量設定類型屬性
+:取消變量的類型屬性
-i:將變量聲明爲整數型
-x:將變量聲明爲環境變量
-p:顯示指定變量的被聲明的類型

2. expr或let

如:dd=$(expr $aa + $bb)注意:+號左右兩側必須有空格。

3."$((式子))" or "$[式子]" 建議使用這種,比較簡單方便。

運算符的優先級

shell基礎2

運算符的測試和替換(不用死記硬背,需要的時候查查就好,個人認爲)
shell基礎2

第六小節 環境配置文件

1. 基礎

  • source命令:source 配置文件 或 .配置文件
  • 主要的環境變量配置文件:(一層一層調用)
    /etc/profile :USER變量,LOGNAME變量,MAIL變量,PATH變量,HOSTNAME變量,umask,調用/etc/profile.d/.sh
    /etc/profile.d/
    .sh
    ~/.bash_profile:調用~/.bashrc,在PATH變量後面加入了“:$HOME/bin”這個目錄
    ~/.bashrc:定義默認別名,alias,調用/etc/bashrc
    /etc/bashrc:PS1變量,umask,PATH變量,調用/etc/profile.d/*.sh

    ![](http://i2.51cto.com/images/blog/201809/25/e6c193b3052f7fc6281b37a25a33bbf9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    “~”家目錄,更改當前用戶家目錄,只對當前用戶生效。
    /etc/profile:有登陸的過程;    /etc/bashrc:無登陸的過程;後面的會覆蓋前面的。

2. 其他配置文件

  • 註銷時生效的環境變量配置文件:~/.bash_logout
  • 歷史命令配置:~/bash_history
  • 本地終端歡迎信息:/etc/issue.net(轉義符不能使用)

shell基礎2
*是否顯示此歡迎信息,由ssh的配置文件/etc/ssh/sshd_config決定,加入"Banner /etc/issue.net"行才能顯示(記得重啓SSH服務)
/etc/motd :本地和遠程登陸都可以顯示歡迎信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章