Shell 实践 Examples
只用来解决实际遇到的问题,不深究全部知识点
提取文件扩展名
echo ${file_name: -3}
获得当前文件夹的父文件夹路径
dirname $(pwd)
判断一个值是不是在一个 array 里面
arr=( hello world shell )
subele=wor
subele1=world
if [[ "${arr[@]}" == *"${subele}"* ]]; then
echo "True"
else
echo "False"
fi
这种方法的问题是,如果有一个元素的子串,也会被认为是 true。
等待某个文件生成
until [ -f $file_name ]
do
sleep 1
echo "sleep, zzzZOOO"
done
把含有空格的字符串变成多行 array
echo $some_string | tr ' ' '\n'
判断文件不存在
if [ -f $some_file ]; then
echo "$some_file exists"
else
echo "$some_file not exists"
fi
判断字符串是否为空
if [ -z $some_string ]; then
echo "string not exists"
else
echo "$some_string exists"
fi
可以用作判断参数是否存在。
监控文件,如果有新增数据,则输出
tail -f $some_file
按时间排序目录下的文件和文件夹
ls -Ct $some_dir
只显示文件 或 只显示文件夹
只显示文件
ls -Ct $some_dir | grep ^-
只显示文件夹
ls -Ct $some_dir | grep ^d
只显示名称,不显示其它信息
ls -Ct $some_dir | grep ^d | awk '{print $9}'
只显示第一个
ls -Ct $some_dir | grep ^d | awk '{print $9}' | head -1