1. 程式人生 > >Shell基礎--Bash變數

Shell基礎--Bash變數

一、使用者自定義變數

  • 使用者自定義變數

    name='zhangsan'
    echo $name
    echo ${name}
  • 變數疊加

    name=zhangsan
    name= ${name}" hello world"
    name="$name is good"
    echo $name
  • 變數呼叫的常用方式

    echo $name
    echo ${name}
  • 檢視變數

set centos版檢視已經生效的變數(系統變數和認為自定義變數)

echo $notExistsVar
set -u
echo $notExistsVar
zsh: notExistsVar: parameter not set
  • 刪除變數

    unset name

二、環境變數

問:環境變數和使用者變數的區別?
答:環境變數的作用是全域性的,而使用者自定義變數是區域性變數。
使用者自定義變數只能在當前的shell中生效
環境變數在當前shell和這個shell的所有子shell中都生效

  • 自定義使用者環境變數

    方式1:export 變數名=變數值
    方式2:變數名=變數值
             export 變數名
  • 檢視環境變數

    env 檢視當前使用者的環境變數

環境變數對當前shell以及子shell都生效

建議環境變數都大寫

1.PATH環境變數

系統搜尋命令的路徑

  • 實踐1:建立自己的系統命令

    cd /home/zrj/www/zhangrenjie_test/test/shell
    chmod +x ./hello.sh
    sudo cp ./hello.sh /bin

    在系統任何地方都可以執行hello.sh

  • 實踐2:將自己的目錄作為系統命令的搜尋目錄

echo $PATH
PATH=/home/zrj/bin:/home/zrj/.local/bin:/usr/local/openssl/bin:/home/zrj/bin:/home/zrj/.local/bin:/usr/local/openssl/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/lampp/bin:/home/zrj/bin:~/.composer/vendor/bin:/opt/lampp/bin:/home/zrj/bin:~/.composer/vendor/bin

PATH="$PATH:/home/zrj/www/zhangrenjie_test/test/shell"
#這裡使用變數疊加

echo $PATH
/home/zrj/bin:/home/zrj/.local/bin:/usr/local/openssl/bin:/home/zrj/bin:/home/zrj/.local/bin:/usr/local/openssl/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/lampp/bin:/home/zrj/bin:~/.composer/vendor/bin:/opt/lampp/bin:/home/zrj/bin:~/.composer/vendor/bin:/home/zrj/www/zhangrenjie_test/test/shell
  • 如何讓PATH環境變數永久生效?

2.PS1環境變數

3.PS2環境變數

三、語系變數

locale
#檢視當前系統語系
LANG 定義系統主語系的變數
LC_ALL定義整體語系的變數

[email protected]:~/www/admin/yundou-admin$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:en
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES=zh_CN.utf8
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=
  • 檢視當前語系

    echo $LANG
  • 檢視linux系統支援的所有的語系

    locale -a
  • 檢視系統預設語系

    即下次開機後開機後預設的系統語系環境

    cat /etc/sysconfig/i18n