Shell 实践 Examples

锺博耘
2023-12-01

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

 类似资料: