read -p "Please input number: " num
while true
do
if [[ “$num” =~ ^[0-9]+$ ]];then
break
else
read -p "Nonumber,Please input number: " num
fi
done
read -p "Please input prefix: " prefix
while true
do
if [ -z "$prefix" ];then
echo "error prefix"
exit
else
read -p "Please input prefix:" prefix
fi
done
1.符号总结
() 在子shell执行
(()) C 风格的数值比较,((1<2))
$(1+2) 和`1+2`一样,叫命令替换:先执行里面的命令,eg:touch $(date +%F)_file.txt
$((1+2)) 整数运算
{} 表示集合,eg:touch {1..2}
${} 表示变量
[] 条件测试:文件,整数,数值,字符串比较
[[]] 功能包含[]的功能,还支持正则比较:[[ =~ ]],~表示正则匹配
eg:[ -d /home -a -f /home/files ];echo $? 等价于
[[ -d /home && -f /home/files ]];echo $?
$[2**10] 整数运算,2的10次方
./1.sh 重要的执行权限 在子shell中执行
bash 1.sh 不需要执行权限 在子shell中执行
. 1.sh 不需要执行权限,在当前shell中执行
source 1.sh 不需要执行权限 在当前shell中执行
注意:通常修改系统配置文件如:/etc/profile的PATH等变量后,使之在当前shell中生效
sh -n 1.sh 仅调试syntax error
sh -vx 1.sh 以调试的方式进行,查询整个执行过程