美文网首页
ios进阶路线 shell脚本语言基础教程(四)

ios进阶路线 shell脚本语言基础教程(四)

作者: JunnpyZ | 来源:发表于2020-05-21 10:14 被阅读0次

上篇我们讲了文件描述符还有自定义文件描述符,补充一下如何关闭自定义的文件描述符

语法:exec 描述符>&-

案例,在实际项目中为了预防错误会灵活控制描述符的启用/禁用:

#!/bin/bash

#自定义输出描述符

exec 3> fileContent.sh

#写入一句话道文件中

echo "我是程序员" >&3 

#关闭文件描述符 ,关闭之后将无法继续使用该描述符

exec 3>&- 

#打印文件内容

cat fileContent.sh

#重新打开

exec 3> fileContent.sh

#向文件写入内容

echo "但是我喜欢装逼" >&3

Shell创建临时文件及文件夹

语法:mktemp 文件名.X(此处可以跟若干个X且必须大写),可创建一个唯一的文件

在终端运行:

mktemp test.XXX

此时当前目录下会生成一个文件,其后缀名是随机且唯一的

在实际代码中,我们会将shell命令直接写入脚本,同时向该文件写入内容,如下:

#!/bin/bash

#创建临时文件

tempfile=$(mktemp testfile.XXXXXX)

#重定向临时文件

exec 3> $tempfile

#打印文件名称

echo "文件名称:$tempfile"

#输出文件内容

echo "我是程序员" >&3

echo "我有梦想" >&3

echo "你呢" >&3

#关闭文件

exec 3>&-

#打印文件内容

echo "文件内容:"

cat $tempfile

#删除文件 

rm $tempfile

当然这种临时存储数据的文件应该及时删除,不如把删除的任务交给系统,这里可以在系统的临时目录下去创建临时文件,由系统去帮你清理

语法:mktemp -t 文件名.X(格式跟普通创建临时文件一致,多了一个‘-t’参数)

创建临时目录

语法:mktemp -d 文件夹名称(后面可根后缀,格式和创建临时文件一致,且唯一)

相信很多同学在迅雷下载或者百度云下载 等下载前会在下载目录创建一个临时文件夹,类似于:学习资料.xfsdferxc,其实他就是使用了创建临时目录的方法,为了避免命令重复,所以使用了随机后缀。

ps:在实际使用中,可能存在既要在控制台输出又要将操作日记记录在文件中情况,我们可以使用一下方式处理:

echo "我要输出到控制台和文件" | tee fileContent.sh

相关文章

网友评论

      本文标题:ios进阶路线 shell脚本语言基础教程(四)

      本文链接:https://www.haomeiwen.com/subject/erhuohtx.html