Shell常用功能实现
Linux Shell常用小功能汇总实现
- Shell实现while循环
- Shell判断文件或文件夹是否存在
- Shell判断一个变量或输入参数是否为空
- Shell中等待一定时间或等待进程结束实现
- Shell脚本实现并行处理数据
- Shell脚本获取某个目录下(除去指定文件)的所有文件
- Shell脚本连接(拼接/合并)字符串
- Shell获取时间戳
- 后续ing…
- 更多请评论区留言(建议用GitHub的留言系统),可提供样例代码,或告诉需求,该文章不断汇总整合。
具体实现样例
Shell实现while循环
while 循环体
do
循环体
done
- 非死循环实现
注意:while循环条件中括号与内部内容之间留有空格
bash
1 | # 循环输出0-10 |
- 死循环实现
死循环while条件可直接用“:”,注意“:”两边有空格
当然也可以直接将循环条件变成恒为True的情况,比如下面两种
while [ "1" = "1" ]
或while test "1" = "1"
bash
1 | i=0 |
Shell判断文件或文件夹是否存在
更多判断条件见Shell脚本中和文件相关的判断符
- 文件是否存在判断
注意:if条件中括号与内部内容之间留有空格
bash
1 | if [ -f "/home/filename" ];then |
- 文件夹是否存在判断
注意:if条件中括号与内部内容之间留有空格
bash
1 | if [ -d "/home/" ];then |
Shell判断一个变量或输入参数是否为空
- 判断变量是否为空
变量从终端获取
bash
1 | read -p "请输入:" varvalue |
变量直接赋空
bash
1 | varvalue= |
- 判断输入参数是否为空
bash
1 | if [ ! -n "$1" ] ;then |
除以上方法外,还可以用如下判断条件判断
if test -z "$varvalue"
或if [ "$varvalue" = "" ]
Shell中等待一定时间或等待进程结束实现
- 等待一定时间
sleep支持的时间单位为 h(时),m(分),s(秒)
bash
1 | sleep 3 # 不加单位默认是秒,等待3秒 |
- 等待进程或作业执行完毕
wait支持等待进程或作业执行完毕。
可通过jobs命令查看后台进行中的作业
bash
1 | wait # 等待当前进程结束后执行 |
Shell脚本实现并行处理数据
- 并行实现思路之一
可通过后台运行符&和进程等待wait组合实现
bash
1 | # 假设已经实现好了两个任务脚本1.sh和2.sh让这两个脚本并行执行。 |
Shell脚本获取某个目录下(除去指定文件)的所有文件
- 获取某个目录下所有文件
方式一,使用通配符*
bash
1 | for name in /etc/* |
方式二,使用ls命令
bash
1 | for name in `ls /etc/` |
- 获取某个目录下扩展名固定的所有文件
bash
1 | for name in /etc/*.conf # 获取etc目录下所有扩展名为.conf的文件 |
Shell脚本连接(拼接/合并)字符串
- Shell脚本连接字符串
Shell字符串拼接不需要使用任何运算符,将两个字符串并排放在一起就能实现拼接
bash
1 | string1="hello" |
Shell获取时间戳
- date更多用法见Linux系统date命令用法小记
bash
1 | date +%s # 获取秒级时间戳 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Guf's Blog!
评论