通過$判斷變數是否存在,決定變數的初始值。
實現此案例需要按照如下步驟進行。
1)只取值,$
若變數var已存在並且非null,則返回$var的值;否則返回字串「word」,原變數var的值不受影響。
變數值已存在的情況:
[root@svr5 ~]# xx=11
[root@svr5 ~]# echo $xx //檢視原變數值
11[root@svr5 ~]# echo $ //因xx已存在,輸出變數xx的值
11
變數不存在的情況:
[root@svr5 ~]# echo $ //因yy不存在,輸出「123」
123
[root@svr5 ~]# cat /root/test.sh
#!/bin/bash
read -p "請輸入使用者名稱:" user
[ -z $user ] && exit //如果無使用者名稱,則指令碼退出
read -p "請輸入密碼:" pass
pass=$ //如果使用者沒有輸入密碼,則預設密碼為123456
useradd $user
echo "$pass" | passwd --stdin $user
用來從鍵盤讀入乙個正整數x,求從1到x的和;當使用者未輸入值(直接會車)時,為了避免執行出錯,應為x賦初值1。
1)指令碼編寫參考如下
[root@svr5 ~]# vim sumx.sh
#!/bin/bash
read -p "請輸入乙個正整數:" x
x=$i=1; sum=0
while [ $i -le $x ]
do let sum+=i
let i++
done
echo "從1到$x的總和是:$sum"
[root@svr5 ~]# chmod +x sumx.sh
2)驗證、測試指令碼執行效果:
[root@svr5 ~]# ./sumx.sh
請輸入乙個正整數:25 //輸入25,正常讀入並計算、輸出結果
從1到25的總和是:325
[root@svr5 ~]# ./sumx.sh
請輸入乙個正整數:70 //輸入70,正常讀入並計算、輸出結果
從1到70的總和是:2485
[root@svr5 ~]# ./sumx.sh
請輸入乙個正整數: //直接回車,設x=1後計算、輸出結果
從1到1的總和是:1
字串初值的處理
問題 本案例要求編寫乙個指令碼sumx.sh,求從1 x的和,相關要求如下 從鍵盤讀入x值 當使用者未輸入任何值時,預設按1計算 方案步驟 實現此案例需要按照如下步驟進行。1 只取值,若變數var已存在且非null,則返回 var 的值 否則返回字串 word 原變數var的值不受影響。變數值已存在...
shell字串初值的處理(變數的初始值賦值)
很多時候在我們寫shell指令碼的過程中,變數值為空的時指令碼會報錯,如果通過判斷去排除變數的值為空會相對麻煩,所以我們通常會為變數設定乙個預設值,避免在指令碼執行的過程中報錯,這就是變數的初始值賦值。經常使用的初始值賦值的方法有以下兩種,都能對乙個變數賦予乙個初始值,但是它們也有區別 1.這種方法...
shell指令碼程式設計 字串擷取 字串初值設定
shell指令碼程式設計 字串擷取 字串初值設定 1.只替換第乙個匹配結果 將第乙個8替換為xx 2.替換全部匹配結果 將phone變數中所有8替換為xx echo 字串掐頭去尾 a head 1 etc passwd echo a root x 0 0 root root bin bash 匹配所...