shell小技巧實戰 判斷檔案或目錄是否存在

2021-08-16 00:02:14 字數 1020 閱讀 1500

在編寫shell指令碼時,通常最開始的工作是對環境的檢查,比如檢查某一檔案或目錄是否存在,並執行相應的操作等。下面的shell指令碼實現的功能是,先檢查某一目錄是否存在,不存在的話就建立此目錄,存在的話就cd到這個目錄下。

#!/bin/bash  #指定用到的shell直譯器

export mypath=/tmp/test #設定目錄的值

if [[ ! -e

$ ]]; #判斷此目錄是否不存在

then

mkdir $mypath; #不存在則建立並切換目錄

cd$mypath;

else

cd$mypath; #存在則直接切換目錄

fi

然後我們執行相應的命令

[root@redhatclient test]# pwd

/root/test

[root@redhatclient test]# ls /tmp |grep test

[root@redhatclient test]# sh sh1.sh

[root@redhatclient test]# pwd

/root/test

[root@redhatclient test]# ls /tmp |grep test

test

[root@redhatclient test]#

可以看到指令碼可以實現我們預想的功能,但是有一點要說明,在shell裡面切換的目錄,在shell執行完之後並不會生效,因為sh sh1.sh這種方式是在當前的shell下生成了乙個shell子程序,只對接下來的指令碼生效,不會對父程序shell生效。如果想要對父程序shell生效,使用命令:

[root@redhatclient test]# source sh1.sh 

[root@redhatclient test]# pwd

/tmp/test

[root@redhatclient test]#

shell判斷檔案目錄或檔案是否存在

e 判斷物件是否存在 d 判斷物件是否存在,並且為目錄 f 判斷物件是否存在,並且為常規檔案 l 判斷物件是否存在,並且為符號鏈結 h 判斷物件是否存在,並且為軟鏈結 s 判斷物件是否存在,並且長度不為0 r 判斷物件是否存在,並且可讀 w判斷物件是否存在,並且可寫 x 判斷物件是否存在,並且可執行...

Shell判斷檔案或目錄是否存在

e filename 如果 filename存在,則為真 d filename 如果 filename為目錄,則為真 f filename 如果 filename為常規檔案,則為真 l filename 如果 filename為符號鏈結,則為真 r filename 如果 filename可讀,則為...

前端實戰小技巧

前端知識小技巧 1 保留 首行 標題 清空列表 table tr not first html table tr not first empty 2 通過屬性隱藏input標籤型別 隱藏,但會佔位置 隱藏,但不會佔位置 通過jquery隱藏與顯示 p hide p show 3 前台動態新增opti...