我需要一个新的临时目录来在
shell脚本中做一些工作.当工作完成(或者如果我中途失效),我希望脚本改回旧的工作目录,并将其暂时删除.在
Ruby中,它可能如下所示:
require 'tmpdir' Dir.mktmpdir 'my_build' do |temp_dir| puts "Temporary workspace is #{temp_dir}" do_some_stuff(temp_dir) end puts "Temporary directory already deleted"
在Bash脚本中要做的最好的打击是什么?
这是我目前的实现.任何想法或建议?
here=$( pwd ) tdir=$( mktemp -d ) trap 'return_here' INT TERM EXIT return_here () { cd "$here" [ -d "$tdir" ] && rm -rf "$tdir" } do_stuff # This may succeed,fail,change dir,or I may ^C it. return_here
干得好:
#!/bin/bash TDIR=`mktemp -d` trap "{ cd - ; rm -rf $TDIR; exit 255; }" SIGINT cd $TDIR # do important stuff here cd - rm -rf $TDIR exit 0
原文地址:https://www.jb51.cc/bash/383602.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。