10 變數的賦值方式

2021-10-05 06:49:32 字數 2705 閱讀 8956

系統已經定義了一些系統變數,如 echo $uid; echo $user; echo $pwd..

想看到所有的環境變數,用 env

如果乙個專案需要拆分成許多小指令碼,可以在其中乙個指令碼中定義一些全域性性的變數,然後在別的指令碼中用點 或 source執行,執行後就可以引用。

shell中,變數沒有型別,不需要像c語言那樣,先定義,後使用,如 int x

以上為某指令碼kvm-manager示例,很多特別的定義,在指令碼前面先顯示定義,後面直接去呼叫。 如 red_col = ""\e[1;31m"

shell預設將變數看作是string 型別

[root@localhost ~]# num1=10

[root@localhost ~]# num2=20

[root@localhost ~]# echo $num1 + $num2

10 + 20 #此處為變數的引用。不會計算;即shell預設把變數當作string字串型別

[root@localhost ~]# echo `date`

mon apr 20 10:05:17 edt 2020

[root@localhost ~]# echo `date +%f`

2020-04-20

[root@localhost ~]#

[root@localhost code]# read -n 2 name

hel[root@localhost code]# echo $name

he # 只取前兩個字元

[root@localhost code]# read ip1 ip2 ip3 ip4

1.1.1.1

[root@localhost code]# echo $ip1

1.1.1.1

[root@localhost code]# echo $ip2

[root@localhost code]# echo $ip3

[root@localhost code]#

[root@localhost code]# read ip1 ip2 ip3 ip4

1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4

[root@localhost code]# echo $ip1

1.1.1.1

[root@localhost code]# echo $ip2

2.2.2.2

[root@localhost code]# echo $ip3

3.3.3.3

[root@localhost code]# echo $ip4

4.4.4.4

[root@localhost code]# cat read_test.sh

#!/usr/bin/bash

read -p "輸入姓名:" name

read -p "輸入性別:" ***

read -p "輸入年齡:" age

echo "您輸入的姓名是:$name, 性別:$***, 年齡: $age"

[root@localhost code]# chmod a+x read_test.sh

[root@localhost code]# sh read_test.sh

輸入姓名:wesley

輸入性別:male

輸入年齡:18

您輸入的姓名是:wesley, 性別:male, 年齡: 18

[root@localhost code]# cat read_test.sh

#!/usr/bin/bash

read -p "輸入姓名,性別,年齡" name *** age

#read -p "輸入性別:" ***

#read -p "輸入年齡:" age

echo "您輸入的姓名是:$name, 性別:$***, 年齡: $age"

[root@localhost code]#

[root@localhost code]# ./read_test.sh

輸入姓名,性別,年齡wesley male 18

您輸入的姓名是:wesley, 性別:male, 年齡: 18

凡是在單引號中,即使算變數,也會喪失其變數的含義。

shell中建議用$()的方式。

[root@localhost code]# disk_free3=$(df -ph |grep '/$'|awk '')

[root@localhost code]# echo $disk_free3

14g

bash 變數賦值方式

例子 經常在 configure 指令碼中,會出現以下類似的語句,都表示什麼意思呢?if test n then ac env build alias set test set 答案及擴充套件 變數賦值方式 str 沒有賦值 str 為空字串 str 為非空字串 備註 var var expr va...

bash 變數賦值方式

例子 經常在 configure 指令碼中,會出現以下類似的語句,都表示什麼意思呢?if test n then ac env build alias set test set 答案及擴充套件 變數賦值方式 str 沒有賦值 str 為空字串 str 為非空字串 備註 var var expr va...

4 變數和不同的賦值方式

變數的定義和使用 變數定義 cc gcc target hello.out 變數使用 target func.o main.o cc o target func.o main.o makefile 中變數的賦值方式 x foo y x b x new phony test test echo x x...