<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 臨時文件的安全問題 生成臨時文件應該遵循下面的規則。 創建前檢查文件是否已經存在。 確保臨時文件已成功創建。 臨時文件必須有權限的限制。 臨時文件要使用不可預測的文件名。 腳本退出時,要刪除臨時文件(使用`trap`命令)。 ## mktemp 命令的用法 `mktemp`命令生成的臨時文件名是隨機的,而且權限是只有用戶本人可讀寫 保證刪除的文件正確的刪除,使用`trap` ``` #!/bin/bash trap 'rm -f "$TMPFILE"' EXIT TMPFILE=$(mktemp) || exit 1 echo "Our temp file is $TMPFILE" ``` ## mktemp 命令的參數 -d參數可以創建一個臨時目錄 ``` $ mktemp -d /tmp/tmp.Wcau5UjmN6 ``` -p參數可以指定臨時文件所在的目錄 ``` $ mktemp -p /home/ruanyf/ /home/ruanyf/tmp.FOKEtvs2H3 ``` -t參數可以指定臨時文件的文件名模板 X的數量最好大于6個 ``` $ mktemp -t mytemp.XXXXXXX /tmp/mytemp.yZ1HgZV ``` ## trap 命令 注意,`trap`命令必須放在腳本的開頭。否則,它上方的任何命令導致腳本退出,都不會被它捕獲 ``` $ trap -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX ``` ``` HUP:編號1,腳本與所在的終端脫離聯系。 INT:編號2,用戶按下 Ctrl + C,意圖讓腳本中止運行。 QUIT:編號3,用戶按下 Ctrl + 斜杠,意圖退出腳本。 KILL:編號9,該信號用于殺死進程。 TERM:編號15,這是kill命令發出的默認信號。 EXIT:編號0,這不是系統信號,而是 Bash 腳本特有的信號,不管什么情況,只要退出腳本就會產生。 ``` 語法 ``` $ trap [動作] [信號1] [信號2] ... ``` ``` $ trap 'rm -f "$TMPFILE"' EXIT ``` 上面命令中,腳本遇到EXIT信號時,就會執行rm -f "$TMPFILE"。 如果`trap`需要觸發多條命令,可以封裝一個 Bash 函數。 ``` function egress { command1 command2 command3 } trap egress EXIT ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看