本文记录工作中常用的bash
命令,忘性大,在此记录。
文件操作
1 2 3 4 5
| path=/mnt/datasets/kitti/
if [ ! -d ${path} ]; then mkdir -p ${path} fi
|
其中-d
表示文件比较符,判断文件夹
是否存在
1 2 3 4 5 6 7 8 9
| file_path=/mnt/datasets/kitti/data.csv
if [ ! -f ${file_path} ]; then echo "file not exists..." else echo "file exists, delete it!" rm -f ${file_path} fi
|
其中-f
表示文件比较符,判断文件
是否存在
以下列举常用的文件比较符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| -e 判断对象是否存在 -d 判断对象是否存在,并且为目录 -f 判断对象是否存在,并且为常规文件 -L 判断对象是否存在,并且为符号链接 -h 判断对象是否存在,并且为软链接 -s 判断对象是否存在,并且长度不为0 -r 判断对象是否存在,并且可读 -w 判断对象是否存在,并且可写 -x 判断对象是否存在,并且可执行 -O 判断对象是否存在,并且属于当前用户 -G 判断对象是否存在,并且属于当前用户组 -nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ] -ot 判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2" ]
|
循环
bash中定义数组的语法
1
| variable=(arg1 arg2 arg3 ....)
|
获取下标为n的元素
而且不存在数组下标溢出的情况,如果 n>=
数组的长度,那么为空,不会报错。
获取数组长度
或者
遍历的两种方式
1 2 3
| for i in ${variable[@]}; do done
|
或者
1 2 3 4
| for i in $(seq 0 ${#variable[@]}); do e=${variable[$i]} done
|
以上两种方法 把 @ 换成 * 也行。
参考
- Shell脚本数组操作小结1
- Shell脚本数组用法小结2
- linux shell
中数组的定义和for循环遍历的方法
- Shell中创建序列和数组(list、array)的方法