0
点赞
收藏
分享

微信扫一扫

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


文章目录

  • ​​1.符号总结​​
  • eg

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

while true
do
if [[ “$num” =~ ^[0-9]+$ ]];then ###后面是正则比较,不要加“”,,~表示匹配。如果是数字,则break
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中的各种符号

()  在子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 以调试的方式进行,查询整个执行过程


举报

相关推荐

0 条评论