Bash shell脚本的语法结构
2015-10-14 10:41
537 查看
目的:自我整理,自我回顾,自我反省!
内容:干货!干货!!干货!!!
附加:不足之处希望大家指正,能给像我一样的菜鸟一点启发就最好啦。仅仅是启发。。。
感谢:感谢老男孩(老看您的博文和视频,O(∩_∩)O哈哈~),当然还有网上的各路技术大牛,参考书籍《UNIX shell》
Bash shell 脚本结构
本文出自 “挨刀客” 博客,请务必保留此出处http://chboy.blog.51cto.com/9959876/1702751
内容:干货!干货!!干货!!!
附加:不足之处希望大家指正,能给像我一样的菜鸟一点启发就最好啦。仅仅是启发。。。
感谢:感谢老男孩(老看您的博文和视频,O(∩_∩)O哈哈~),当然还有网上的各路技术大牛,参考书籍《UNIX shell》
Bash shell 脚本结构
#/bin/sh | shbang行,脚本解释器。 如:#/bin/csh,#/bin/awk...等 |
# | 注释。 如:This doc is writed chbo. |
shell元字符或通配符 | *,'',"",?,[],|,>,>>等 如:rm ./* |
显示输出 | echo "Hello,Chbo." |
局部变量 | var=value var='value' var="value1 value2" ---命令结果赋值给变量--- var=`cmd` var=$(cmd) |
环境变量 | ---临时生效--- export var=value var=value ;export var ---永久生效--- 写入:/root/.bash_profile /root/.bashrc 常写入:/etc/profile 脚本目录:/etc/profile.d |
查看变量 | echo $var_name echo $PATH |
特殊变量 | $0 :打印自身 $n :${10} $? :echo $? 判断命令执行结果 $# :传参个数 如: [root@chboa 02]# cat 4.sh [ $# -ne 2 ] && { echo "must two" exit 1 } echo haha |
传参 | ---交互式--- [root@chbo ]# read -t 5 -p "pls input:" a pls input:33 [root@chbo ]# echo $a 33 ---非交互式--- var1=$1 var2=$2 |
算术运算 | 1、((n=1+2)) 2、n=`expr 5 + 9` 3、let n=1+2 4、n=`echo 3+3|bc` 5、n=$[2+3] |
条件测试 | 方式一:test 方式二:[] 方式三:[[]] ---数值比较-------------------------------- -eq -ge -gt -le -lt -ne 如:[$1 -eq $2] ---字符串比较------------------------------ = != -n str1 检查str1的长度是否非0 -z str1 检查str1的长度是否为0 如: [ "$str1" = "$str2" ] [ -n "$str1" ]--->检查一个变量是否含有数据 注意: 1、加 “ ” 2、=两边必须有空格 ---文件比较-------------------------------- -e -d -f -r -w -x(excute) -s(size) -nt (new than) -O 检查文件是否存在并属于当前用户所有 -G 检查文件是否存在默认组与当前用户相同 例如: [ -s $file ] 检查文件是否存在并非空 [ $file1 -nt $file2 ] 检查file1比file2新 |
条件语句 | if [ -f $file ] then echo 0 else echo 1 fi <===> [ -f $file ]&&echo 0||echo 1 ------------------------------------------- if [ ] then statements elif then statements elif then statements else statements if ------------------------------------------- case var_name in pattern1) statements ;; pattern2) statements ;; pattern3) statements ;; *) default value ;; esac |
循环语句 | for n in `seq 10` do echo 10.0.0.$n done --------------------------- while [ ] do commands done ---------------------------- until [ ] do commands done |
函数 | function name(){ 指令 return n } 执行: 先定义函数,才能调用 调用函数,直接写函数名 |
脚本的执行 | sh script_name chmod +x path/script_name;path/script_name source script_name或. script_name (当前shell可调用脚本里的内容) |
相关文章推荐
- Shell获取Aix/linux/unix机器上db2和os的信息并上传到指定服务器
- shell脚本中自动输入密码
- linux shell 报错 Syntax error: Bad for loop variable
- bash基础
- Bash的环境配置文件
- scala VS python2 操作shell对比例子
- 转 bash 命令
- Github出现failed to sync branch You might need to open a shell and debug the state of this repo的解决方法
- exit(-1)或者return(-1)shell得到的退出码为什么是255
- linux shell实现随机数几种方法分享(date,random,uuid)
- java执行shell
- Linux下执行shell脚本
- Shell Script不同运行方式的区别
- shell获取当前工作目录绝对路径
- :>/dev/null 2>&1 的作用
- Mysql Shell 日常管理命令查漏
- sudo: cd: command not found
- shell自学笔记2
- Bash 替换连续多个空格为一个
- 解决VMware8安装CentOS等系统时出现Fatal IO error 11(Resource temporarilt unavaliable) on Xshell:1问题