if[-f/home/myfile];then
echo"Fileexists!"
else
echo"Filenotexist!"
fi
用 -f 判斷即可。
B. 如何通過linux shell腳本來檢查文件系統類型
方法/步驟
1
如何知道當前的shell,參看下面的圖片中的命令。
2
這是bash源文件resource的內容和存放路專徑
3
命令ls中使用大F列出屬哪些是目錄哪些是文件
4
這里的backslash符號,也就是反斜杠符號是換行續寫的意思
5
這里使用backslash符號連續輸出2個目錄下的內容
分號分隔符號;的意思是,執行完成第一個命令然後才開始執行第二個命令。
可以在輸入命令行時,按下tab鍵執行命令行自動補齊
這里介紹emacs編輯器,也就是在命令行中輸入命令時使用的編輯器
在命令行編輯時游標cursor的back和forward
按下control加小寫的L將清除屏幕,並把當前行移動到屏幕的top位置
全局command編輯器配置
inputrc文件的內容
制定用戶的command行編輯工具
用命令bind的v選項看keyboard的bindings類型
這個是substitution命令,先執行,然後將輸出傳遞給前面一個command,這里不是單引號,是~鍵上的符號
C. linux shell 判斷文件是否存在 存在就刪除
1、linux shell中判斷文件是否存在,可以使用test命令的-a參數。藉助於if結構進行判斷即可。
2、以版~/t/thello.py為例,檢測這權個文件,如果存在將其刪除,示例代碼如下:
if[[-a~/t/hello.py]];then
echo"存在文件";
rm-f~/t/hello.py
fi;
3、測試效果如下圖所示
D. 在shell中判斷一個文件是否為空
首先:-f判斷是不是文件; -d判斷是不是目錄;-e判斷文件/目錄是否存在;-s判斷文件長度是否不為0,當-s後面跟目錄是,總是返回真
在Linux中寫腳本的時候,總免不了需要判斷文件是否存在、文件內容是否為空等存在,而這些操作都可以用 test 指令來實現,通過 man test 指令可以查看關於test指令的手冊,手冊中有如下說明:
在shell中通過test指令測試文件是否為空的示例腳本如下:
在shell中,test指令還有另外一種寫法,上面的腳本和下面的腳本是等價的:
E. linux shell 如何判斷一個文件是否存在
了解你的意思,首先,test命令是判斷某一個特定的文件相關信息,也就是當你使用test這個命令的時候,你是清楚它叫什麼名字的(只是你不知道它的相關信息)。如果你要判斷比如你說的以hbc*開頭的一類文件,最好就是使用ls命令或者find命令來作。你可以參考一下,下面的小測試。
mike
>>>
ls
-d
???
12-04-20
23:15
acp/
apc/
scl
tmp/
xmy/
mike
>>>
test
-d
x??
12-04-20
23:15
mike
>>>
echo
$?
12-04-20
23:16
0
mike
>>>
test
-d
x*
12-04-20
23:16
test:
too
many
arguments
使用find命令能很好查找已hbc開頭的文件或者目錄,但是它不能判斷有沒有這樣的文件,因為你不能通過find的命令執行狀態來判斷是否有這樣的文件,但是可以把find的輸出導向到一個文件,從而對文件進行判斷。如下:
mike
>>>
find
./
-type
d
-name
"FUK*"
-print
12-04-20
23:24
mike
>>>
echo
$?
12-04-20
23:24
0
F. linux shell 指令 諸如-d, -f, -e之類的判斷表達式
如果 filename存在,則為真 [ -e /var/log/syslog ]-d filename
如果 filename為目錄,則為真 [ -d /tmp/mydir ]-f filename
如果 filename為常規文件,則為真 [ -f /usr/bin/grep ]-L filename
如果 filename為符號鏈接,則為真 [ -L /usr/bin/grep ]-r filename
如果 filename可讀,則為真 [ -r /var/log/syslog ]-w filename
如果 filename可寫,則為真 [ -w /var/mytmp.txt ]-x filename
如果 filename可執行,則為真 [ -L /usr/bin/grep ]filename1-nt filename2
如果 filename1比 filename2新,則為真 [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2
如果 filename1比 filename2舊,則為真 [ /boot/bzImage -ot arch/i386
-z string 如果 string長度為零,則為真 [ -z "$myvar" ]-n string 如果 string長度非零,則為真 [ -n "$myvar" ]
string1= string2 如果 string1與 string2相同,則為真 [ "$myvar" = "one two three"]
string1!= string2 如果 string1與 string2不同,則為真 [ "$myvar" != "one two three" ]
num1-ne num2 不等於 [ 3 -ne $mynum ]num1-lt num2 小於 [ 3 -lt $mynum ]
num1-le num2 小於或等於 [ 3 -le $mynum ]num1-gt num2 大於 [ 3 -gt $mynum ]
num1-ge num2 大於或等於 [ 3 -ge $mynum ]
Linux操作系統
是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。
G. linux shell程序,如何輸入一個文件名判斷它是文件夾還是文件
//是目錄不是文件夾
#! /bin/bash
# filename:FileType.sh
read -p "Please input the filename :" filename
fpath=$filename
if [ -d $fpath ];
then
echo "$fpath is a direstory.";
elif [ -e $fpath ];
then
echo "$fpath is a file.";
else
echo "$fpath is NOT a file or direstory.";
fi
H. 關於linux,shell腳本中怎樣判斷文件是否有內容
可以用「test 條件表達式」進行測試,如:test -f /etc/fstab 測試文件/etc/fstab文件是否存在
-e File 如果文件File存在(Exist),則為True
-s File 如果文件File存在且文件大小(Size)大於零,則為True
-f File 如果文件File存在且是普通文件(File),則為True
-d File 如果文件File存在且是目錄(Directory),則為True
-b File 如果文件File存在且是塊(Block)特殊文件,則為True
-c File 如果文件File存在且是字元(Character)特殊文件,則為True
-L File 如果文件File存在且是符號鏈接(Link)文件,則為True
-r File 如果文件File存在且是可讀的(Readable),則為True
-w File 如果文件File存在且是可寫的(Writable),則為True
-x File 如果文件File存在且是可執行的(Executable),則為True
-O File 如果文件File存在且屬於當前用戶(Owner),則為True
-G File 如果文件File存在且屬於當前用戶組(Group),則為True
File1 -nt File2 如果文件File1新於(Newer Then) File2,則為True
File2 -ot File2 如果文件File1舊於(Older Then) File2,則為True