在使用bash編程時,我們經(jīng)常需要檢查文件是否已經(jīng)存在,創(chuàng)建新文件,在文件中插入數(shù)據(jù)。有時我們還需要從其他腳本執(zhí)行其他腳本。本篇文章將介紹關(guān)于bash shell:測試文件或目錄是否存在。
1、bash shell:測試文件是否存在
如果我們需要添加一些內(nèi)容或者需要從腳本創(chuàng)建文件。首先,確保該文件是否已經(jīng)存在。例如,我的一個腳本在file/tmp/testfile.log中創(chuàng)建日志,我們需要確保該文件是否存在。
#!/bin/bash ? if?[?-f?/tmp/testfile.log?] then ????echo?"File?exists" fi
以上語句也可以使用test關(guān)鍵字編寫,如下所示
#!/bin/bash ? if?test?-f?/tmp/testfile.log then ????echo?"File?exists" fi
或者在一行中我們可以寫成如下所示。在shell腳本編寫時,這非常有用。
[?-f?/tmp/testfile.log?]?&&?echo?"File?exists"
在上面的命令中添加其他部分
[?-f?/tmp/testfile.log?]?&&?echo?"File?exists"?||?echo?"File?not?exists"
2、bash shell:測試目錄是否存在
有時我們需要在一個特定的目錄中創(chuàng)建文件,或者需要目錄。我們都應(yīng)該確保該目錄存在。例如,我們現(xiàn)在檢查/ tmp / mydir是否存在。
#!/bin/bash ? if?[?-d?/tmp/mydir?] then ????echo?"Directory?exists" fi
以上語句也可以使用test關(guān)鍵字編寫,如下所示
#!/bin/bash ? if?test?-d?/tmp/mydir then ????echo?"Directory?exists" fi
或者在一行中我們可以寫成如下所示
[?-d?/tmp/mydir?]?&&?echo?"Directory?exists"
3、Bash Shell:如果不存在則創(chuàng)建文件目錄
這是在創(chuàng)建文件之前檢查文件是否存在的最佳方法,否則將可能收到錯誤消息。這在運行時創(chuàng)建shell腳本所需的文件或目錄時非常有用。
文件:
[?!?-f?/tmp/testfile.log?]?&&?touch?/tmp/testfile.log
目錄:
1????[?!?-d?/tmp/mydir?]?&&?mkdir?-p?/tmp/mydir
本篇文章到這里就已經(jīng)全部結(jié)束了,更多其他精彩內(nèi)容可以關(guān)注php中文網(wǎng)的Linux教程視頻欄目!