linux bash 局部变量赋值,linux之bash的基础特性(四)变量,配置文件及env,printenv,export,declare,set,unset,readonly简单命令...
變量
主要有本地變量,環境變量,局部變量,位置變量,只讀變量,特殊變量
1.本地變量:該類變量的作用范圍僅限于當前shell進程,在其他shell進程包括其子或父進程均無效
該類變量賦值方式:
1)直接賦值varName=value的形式
2)變量引用賦值varName="$varName"或varName=${varName}形式
3)命令引用賦值varName=`command`或varName=$(command)的形式
4)幾種特殊符號的說明:
1>單引號''表示強引用保留引號中的內容不會因為引用變量而改變
2>雙引號""表示弱引用內容會因引用變量而發生改變
3>反斜線\轉義單個字符
4>反引號``表示將內容作為命令執行
2.環境變量:該類變量的作用范圍僅限于當前shell進程及其子shell進程
1)聲明方式:export varName=value或declare -x varName=value
2)顯示環境變量:env,printenv,export三個命令都會顯示而set命令會顯示所有已定義的變量
3)銷毀變量:unset varName
3.只讀變量:一旦聲名不可改變即常量constant
聲名方式:readonly varName=value或declare -r?varName=value
4.特殊變量:
$?表示最近的一次命令的執行狀態碼
$0表示命令本身的名字
$#表示傳遞參數的個數
$*傳遞的所有參數,以字符串的形式
$@傳遞的所有參數,以單個字符的形式
5.位置變量:指明第幾個參數$1,$2,$3,...并且支持換崗操作shift [n]命令
1 #!/bin/bash2# Author:wang3 # Version:0.0.01
4# Description:測試腳本5 # CreateTime:2019/05/13
6 echo "\$#--所有參數的個數$#"
7 echo "\$*--所有參數$*"
8 echo "\$@--所有參數$@"
9 echo "\$0--命令本身$0"
10 echo "\$?--命令執行狀態碼$?"
11 echo "\$1--第1個參數$1"
12 echo "\$2--所有參數$2"
換崗
#!/bin/bash2# Author:wang3 # Version:0.0.01
4# Description:Test5 # CreateTime:2019/05/13
6 echo "\$#--所有參數的個數$#"
7 echo "\$*--所有參數$*"
8 echo "\$@--所有參數$@"
9 echo "\$0--命令本身$0"
10 echo "\$?--命令執行狀態碼$?"
11 echo "\$1--第1個參數$1"
12 shift 1
13 echo $1
執行后發現shift 1其實就是將第二個參數的值移到第一個參數的位置
配置文件
1.按范圍來分有全局配置文件和個人配置文件
1)全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc
2)個人配置文件:~/.bash_profile ~/.bashrc
2.按功能分為profile類和bashrc類
1)profile類:為交互式登錄shell進程提供配置,主要是定義環境變量,執行腳本
交互式登錄shell(直接通過終端輸入賬號密碼或su - username)的讀取次序:/etc/profile-->/etc/profile.d/*.sh-->~/bash_profile-->~/.bashrc-->/etc/bashrc
2)bashrc類:為非交互式登錄shell進程提供配置
非交互式登錄shell(su username或圖形界面下打開的終端或執行腳本)的讀取次序:~/.bashrc-->/etc/bashrc-->~/bash_profile-->/etc/profile.d/*.sh-->/etc/profile
總結
以上是生活随笔為你收集整理的linux bash 局部变量赋值,linux之bash的基础特性(四)变量,配置文件及env,printenv,export,declare,set,unset,readonly简单命令...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jenkins linux 配置文件,J
- 下一篇: linux c嵌入汇编语言,Linux