Shell 脚本在我们日常开发和学习都有举足轻重的地位,比如看一些开源项目,比如项目中的各式各样的脚本,对于促进生产力工具有很大帮助!
1、命令小技巧
1、-x命令进行跟踪调试执行
执行:
2、-c命令 (执行命令参数)
3、使用set变量
执行
帮助可以看:sh -c "help set"
2、语法小技巧
1、${}和$适用场景
1)$ 可能有语法歧义,所以一般使用${}
3、cat[>>|>][FILE]<
如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。这可以解决由于脚本中的自然缩进产生的制表符。
输出
可以看到
5、特殊变量
6、[[]]和[]标准 以及基本语法规范
具体规范:
执行后发现
7、/bin/sh 与 /bin/bash 的区别
/bin/sh 与 /bin/bash 的区别
3、获取命令结果$(cmd)
有两种写法,一种是$()这个并不是所有的shell都支持,但是比较直观, 另外一种是"``" (它可是适用更多的平台)
输出:
4、输入输出重定向2>&1
使用
程序中经常有,标准输出,但是还有错误输出,因此需要合并到一个流中
其实Go的程序中正执行脚本的时候可以指定,标准输出和错误输出
使用的时候:
例如:
command >out.file是将command的标准输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&,是让该命令在后台执行。
5、If语句
if 其实就是test 命令
1、格式
1) 换行写
2)非换行写
2、结果获取/判断
结果输出0 ,表示为真,可以通过$? 来获取结果
3、例如调试条件
4、测试文件是否存在
5、字符串操作
字符串推荐加"" 进行定义
1) 判断字符串是否为空-z (zero)么
2)判断两个字符串是否相同
4、测试一个命令是否存在command -v $#
5、获取字符串长度${#var}
6、数字比较
7、shell脚本中if判断'-a' - '-z'含义
6、for循环
1、forin; do;;done
2、for((x=0; x<10; x++));do;; done
1、例子
脚本
2、格式
首先gun的sed函数和mac的set是有些不同的!具体看:
具体写在其他文档上,目前使用的多个命令也未分享!
原文地址:














发表评论