1.變數的賦值
面試點:變數賦值的五種方法
(1)顯示賦值(直接賦值)
簡單例項:
[root@bogon ~]
# ip=192.168.150.128
[root@bogon ~]
# echo $ip
192.168.150.128
[root@bogon ~]
# name=chenchen
[root@bogon ~]
# echo $name
chenchen
(2)使用read命令賦值
#! /bin/bash
read -p "請輸入乙個變數值:"
hostname
echo
$hostname
新增執行許可權,檢視執行結果
[root@bogon ~]
# chmod +x variable4.sh
[root@bogon ~]
# ./variable4.sh
請輸入乙個變數值:chen.com.cn
chen.com.cn
linux read命令用於從標準輸入讀取數值。read 內部命令被用來從標準輸入讀取單行資料。這個命令可以用來讀取鍵盤輸入,當使用重定向的時候,可以讀取檔案中的一行資料。
語法
read
[-ers]
[-a aname]
[-d delim]
[-i text]
[-n nchars]
[-n nchars]
[-p prompt]
[-t timeout]
[-u fd]
[name ...]
引數說明:(3)使用命令列引數進行賦值(位置引數或環境變數)-a 後跟乙個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。
-d 後面跟乙個標誌符,其實只有其後的第乙個字元有用,作為結束的標誌。
-p 後面跟提示資訊,即在輸入前列印提示資訊。
-e 在輸入的時候可以使用命令補全功能。
-n 後跟乙個數字,定義輸入文字的長度,很實用。
-r 遮蔽\,如果沒有該選項,則\作為乙個轉義字元,有的話 \就是個正常的字元了。
-s 安靜模式,在輸入字元時不再螢幕上顯示,例如login時輸入密碼。
-t 後面跟秒數,定義輸入字元的等待時間。
-u 後面跟fd,從檔案描述符中讀入,該檔案描述符可以是exec新開啟的。
1.使用位置引數
簡單例子:
#! /bin/bash
#使用位置引數給變數賦值
echo
"請輸入三個位置引數: $1
$2$3"
a=$1
b=$2
c=$3
echo
"輸出變數a,b,c的值為:$a,$b,$c"
新增執行許可權,檢視執行結果
[root@bogon ~]
# chmod +x variable5.sh
[root@bogon ~]
# ./variable5.sh 1 2 3
請輸入三個位置引數: 1 2 3
輸出變數a,b,c的值為:1,2,3
[root@bogon ~]
# ./variable5.sh 6 7 8
請輸入三個位置引數: 6 7 8
輸出變數a,b,c的值為:6,7,8
2.使用環境變數
[root@bogon ~]
# cat variable6.sh
#! /bin/bash
#使用環境變數,給變數賦值
#方法一:先直接賦值後,在使用關鍵字export將其轉化成環境變數
back_dir=/home/backup
export back_dir
echo
$back_dir
#方法二:直接使用export關鍵字
export back_dir1=/home/hao
echo
$back_dir1
新增執行許可權,檢視執行結果
[root@bogon ~]
# vim variable6.sh
[root@bogon ~]
# chmod +x variable6.sh
[root@bogon ~]
# ./variable6.sh
/home/backup
/home/hao
(4)使用命令的輸出結果進行賦值
簡單例子
#! /bin/bash
var=
'ls -l'
echo
$var
var1=
'cat /etc/passwd | grep root'
echo
$var1
新增執行許可權,檢視執行結果
[root@bogon ~]
# chmod +x variable7.sh
[root@bogon ~]
# ./variable7.sh
-rwxr-xr-x. 1 root root 1002 1月 4 19:11 variable2.sh -rwxr-xr-x. 1 root root 116 1月 4 20:04 variable3.sh -rwxr-xr-x. 1 root root 75 1月 5 11:54 variable4.sh -rwxr-xr-x. 1 root root 153 1月 5 12:08 variable5.sh -rwxr-xr-x. 1 root root 277 1月 5 12:18 variable6.sh -rwxr-xr-x. 1 root root 98 1月 5 12:30 variable7.sh -rwxr-xr-x. 1 root root 50 1月 4 19:05 variable.sh
root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
(5)從檔案中讀取
簡單例子:
#!/bin/bash
ls *.sh >execfile
while
read line do
chmod a+x $line
done(1)單引號
單引號括起來的字元都作為普通字元出現
(2)雙引號
雙引號括起來的字元,除「$」,「\」," 』 「,」 』 "這幾個字元保留原本含義,其他字元仍然作為普通字元。
(3)反引號
反引號括起來的字元,被shell解釋為命令,在執行時,shell首先執行該命令,並以它的標準輸出結果取代整個反引號部分。
簡單例子區分:
#! /bin/bash
echo
"請輸出系統管理員: $user"
echo
'請輸出系統管理員: $user'
echo
"請輸出當前路徑: `
pwd`
"echo
'請輸出當前路徑: `
pwd`
'新增執行許可權,檢視執行結果
[root@bogon ~]
# vim variable9.sh
[root@bogon ~]
# chmod +x variable9.sh
[root@bogon ~]
# ./variable9.sh
請輸出系統管理員: root
請輸出系統管理員: $user
請輸出當前路徑: /root
請輸出當前路徑: `
pwd`
shell 指令碼變數賦值
簡單的變數賦值a 879 echo the value of a is a.用let賦值let a 16 5 echo the value of a is now a.read命令是系統內建命令 語法格式 read 變數1 變數2 用 read 命令 這也是一種賦值 echo n enter a r...
shell指令碼 學習if語句和變數賦值
譬如某一天我們做了乙個很吊的軟體,為了方便使用者安裝和初始化,我們需要寫乙個shell指令碼,讓使用者執行下指令碼就完成了初始化。功能如下 定義乙個init.sh 1 檢視當前目錄下是否存在error.log檔案,如沒有則生成乙個 2 如果有了,則加入一行文字 init ai time 把當前時間加...
shell 變數定義 變數賦值
在 shell 中,當第一次使用某變數名時,實際上就定義了這個變數。建立和設定變數的語法 varname varvalue如果沒有給出變數值,則變數會被賦予乙個空字串。注意,在賦值操作符 的周圍不要有任何空格,像下面這三種寫法會報錯 varname varvalue varname varvalue...