路径获取
- 绝对路径
readlink -f [FILE NAME]
e.g.
readlink -f test_2
# return
# /home/wangcongying/tmp/test_2
- 父级绝对路径
dirname [文件(文件夹)绝对路径]
e.g.
dirname /home/wangcongying/tmp/test_2
# return
# /home/wangcongying/tmp
注意以下例子
dirname test_2
# return
# .
命令替换
- $()
- ``
#两者效果一样,但是$()更利于区分
$ echo the last sunday is $(date -d "last sunday" +%Y-%m-%d)
$ echo the last sunday is `date -d "last sunday" +%Y-%m-%d`
打点日志
- 运行成功打点
exec 1> [LOG NAME]
- 运行失败打点
exec 2> [LOG NAME]
- 执行指令后,会先显示该指令及所下的参数。
set -x
...
...
...
set +x
- 打点模板
cd $(dirname $full_path)
exec 1>${full_path%.*}.log
exec 2>${full_path%.*}.err
set -x
...
...
...
set +x
- 全局运行失败即返回
若指令传回值不等于0,则立即退出shell。
set -e
sort 排序
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。
语法:
sort [选项] [参数]
选项:
-b:忽略每行前面开始出的空格字符;
-c:检查文件是否已经按照顺序排序;
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
-f:排序时,将小写字母视为大写字母;
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
-m:将几个排序号的文件进行合并;
-M:将前面3个字母依照月份的缩写进行排序;
-n:依照数值的大小排序;
-o<输出文件>:将排序后的结果存入制定的文件;
-r:以相反的顺序来排序;
-t<分隔字符>:指定排序时所用的栏位分隔字符;
-u:就是 uniq ,相同的数据中,仅出现一行代表;
+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。