linux判斷
1. 關於linux中的判斷符號[ ]
[ -z "$HOME" ] 其實就等於 test -z "$HOME" ,所以 [ ] 裡面能用的選項和 test 語句能用的完全一樣,所以你可以通過 man test 來查看詳細信息。
2. linux系統的判斷語句,求助!
if [ ! -d "${CodeRootDir}" ]; then
echo -e "Directory $CodeRootDir is being created"
mkdir -p $CodeDir
cd $CodeDir
fi
echo -e "Directory $CodeRootDir have already exists"
cd $CodeRootDir
是要這個效果嗎
3. linux下如何判斷該文件是否是可執行程序
在Linux下的文件沒有擴展名,不好區別是不是可執行文件,可以用vi或什麼查看指令打開看一下該文件的頭內容,就知道是什麼執行文件。
4. 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
5. linux 如何判斷變數值是否是數字
摘自《實用Linux Shell編程》,比較新上市的書,4.15節
使用expr進行計算的時候,變數必須是整數,不能是字元串,也不能含小數,否則會出錯(命令的退出狀態為非0):
$ i=hello
$ expr $i + 58
expr: non-integer argument
$ echo $?
2
利用命令expr的這一特點,可以判斷某個變數是不是整數。讓其參與整數運算,比如,與1相加,如果expr命令的退出狀態是0(成功),表明該變數是整數,否則不是整數。見下列:
$ k=5
$ expr 1 + $k > /dev/null 2>&1 # 這里只關心命令的退出狀態,不關心值是多少,
# 所以將標准輸出與標准錯誤都重定向到"黑洞"
$ echo $?
0 # 退出狀態為0,說明k是整數
$ m=5.8
$ expr 1 + $m > /dev/null 2>&1
$ echo $?
2 # 退出狀態非0,說明m不是整數
6. linux shell 如何判斷上一個任務是否完成
|| 管道命令 只有管道前面的命令生效了,後面才執行
7. linux shell編程中怎麼判斷時間相等
#!/bin/bash#格式化過期日期,格式化過期日期完整時間以當前時間作為參考!expday="2018-04-11 `date +%T`"echo "Expire day is $expday"#當前日期時間格式為stamp時間戳todays=`date +%s`echo "Today is $(date +"%F %T")"#以下2種方式做時間的四則運算,分別使用 let 或者 $(( ))#過期日期已格式化,規避整數運算的誤差(去余數)#let dayDiff=($(date -d "$expday" +%s)-$todays)/86400dayDiff=$(( ($(date -d "$expday" +%s)-$todays)/86400 ))echo "Diff day is $dayDiff days!"
其餘說明:
bash 不支持浮點運算,如果需要進行浮點運算,需要藉助bc,awk 處理。Linux命令需求的話可如下圖進行查詢
8. linux文件怎麼判斷屬性
Linux中的文件屬性可以通過ls -al指令來查看,下面的指令演示了如何在Linux系統中查看文件的屬性:letuknowit@ubuntu:/$ cd /tmpletuknowit@ubuntu:/tmp$ touch testletuknowit@ubuntu:/tmp$ ls -al test-rw-rw-r-- 1 letuknowit letuknowit 0 2012-03-08 04:33 test第1行:通過cd指令進入 /tmp 目錄第2行:通過touch指令新建一個文件,名為:test第3行:通過ls -al test指令查詢文件test的屬性,這里只列出了文件test的屬性,如果想列出當前目錄下所有文件的屬性,去掉test即可(ls -al),也可以將test換成系統中的某個路徑(ls -al /tmp),那麼就會列出該路徑下所有文件的屬性第4行:test文件的屬性,在Linux中,每個文件的屬性由七個部分組成,為了看的更清楚,下面把這7項分開點顯示:-rw-rw-r--???????? 1???????? letuknowit???????? letuknowit???????? 0???????? 2012-03-08 04:33???????? test 以上7項依次表示【文件的屬性】、【連接數】、【文件的擁有者】、【文件所屬的群組】、【文件大小】、【文件創建時間】和【文件名稱】。 紅色部分的 -rw-rw-r–?? 就是Linux系統下文件的屬性了,其決定著文件的擁有者、群組以及其他用戶對該文件的訪問許可權,藍色的letuknowit為該文件的擁有者,綠色的letuknowit是文件所屬的群組;由於是用touch指令創建的文件,所以文件的大小為0。