(2.8)shell中各种奇怪的符号

文章目录

  • eg
#!/usr/bin/bash
read -p "Please input number: " num
## num3=123yy
## [[ $num3 = ~ ^[0-9]+$ ]];echo $? 表示:num3变量是否匹配后面的正则模式
## 1

while true
do
	if [[ $num =~ ^[0-9]+$ ]];then  ###后面是正则比较,不要加“”,,~表示匹配。表示:如果不是数字,就echo,
		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"
	else
		read -p "Please input prefix"
	fi
done

1.符号总结

  • shell中的各种符号
()	在子shell执行
(()) 	C 风格的数值比较,((1<2))
$(1+2)	和`1+2`一样,叫命令替换:先执行里面的命令,eg:touch $(data+%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]		整数运算,210次方
  • 执行脚本
./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 以调试的方式进行,查询整个执行过程
发布了582 篇原创文章 · 获赞 143 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/u011436427/article/details/104400094
今日推荐