shell脚本 read增加一个默认值

shell脚本 read增加一个默认值

在使用read做交换处理的时候,需要输入,偶尔需要提供默认值,譬如数字选择,或者yes、no等。

第一种,使用 ${} 进行赋值

${file-my.file.txt} :假如$file 沒有设定,則使用my.file.txt 作传回值。(空值及非空值時不作处理) 
${file:-my.file.txt} :假如$file 沒有設定或為空值,則使用my.file.txt 作傳回值。(非空值時不作处理)
${file+my.file.txt} :假如$file 設為空值或非空值,均使用my.file.txt 作傳回值。(沒設定時不作处理)
${file:+my.file.txt} :若$file 為非空值,則使用my.file.txt 作傳回值。(沒設定及空值時不作处理)
${file=my.file.txt} :若$file 沒設定,則使用my.file.txt 作傳回值,同時將$file 賦值為my.file.txt 。(空值及非空值時不作处理)
${file:=my.file.txt} :若$file 沒設定或為空值,則使用my.file.txt 作傳回值,同時將$file 賦值為my.file.txt 。(非空值時不作处理)
${file?my.file.txt} :若$file 沒設定,則將my.file.txt 輸出至STDERR。(空值及非空值時不作处理)

如上,我们可以使用 ${ 变量 :- 值 }

#!/bin/bash
read -p "请输入数字(默认为1):" num
num=${num:- 1}
echo "num is $num"

第二种:使用判断 [ -z ]

#!/bin/bash
read  -p "请输入数字(默认为1):" num
#判断num是否为空,空值则执行num=1
if [ -z $num ];then
	num=1
fi
echo "num is  $num"

good good study, day day up!

发表评论

textsms
account_circle
email

shell脚本 read增加一个默认值
在使用read做交换处理的时候,需要输入,偶尔需要提供默认值,譬如数字选择,或者yes、no等。 第一种,使用 ${} 进行赋值 ${file-my.file.txt} :假如$file 沒有设定,則使用my.fil…
扫描二维码继续阅读
2021-11-09