linux腳本
Ⅰ linux shell 指令 諸如-d, -f, -e之類的判斷表達式
文件比較運算符-e filename
如果 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
/boot/bzImage ]字元串比較運算符 (請注意引號的使用,這是防止空格擾亂代碼的好方法)
-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-eq num2 等於 [ 3 -eq $mynum ]
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 類操作系統,並且使用人數還在迅猛增長。
Ⅱ linuxshell腳本程序
1 #!/bin/bash
2 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
3 export PATH
4 echo -e "------please input---------
"
5 read -p "please input a file or path " filename
6 test ! -e $filename && echo "not file or path" && exit 0
7 test -d $filename && ls $filename && exit 0
8 test -f $filename && cat $filename | more && exit 0
9 test -x $filename && ./$filename && exit 0
10 exit 0
親自用vim給你寫的,簡單測試了一下。
Ⅲ Linux 腳本 sh 和 ./ 的區別
區別只有一點:
sh表示腳本默認使用sh腳本解釋器。
未指定腳本解釋器默認為 ./。
具體解釋:
使用「./」執行腳本,對應的xxx.sh腳本必須要有執行許可權。
使用「sh」 執行腳本,對應的xxx.sh沒有執行許可權,亦可執行。
當腳本開頭使用#!設置使用的shell類型時,使用「./」執行腳本時,則使用「#!」標志的shell執行腳本;若無使用「#!」標記,則使用系統設置的默認shell執行腳本。
(3)linux腳本擴展閱讀:
舉例:
登錄用戶root查看許可權:
-rwx—— 1 root root
執行這個shell腳本 :
./test 成功。
sh test 成功。
去掉執行許可權x:
-rw——- 1 root root 17 2011-09-22 23:33 test
執行這個shell腳本。
./test 失敗 (-bash: ./test: Permission denied)。
sh test 成功。
Ⅳ 怎麼在linux下創建一個可運行腳本
步驟:
1.新建一個.sh文件,touch test.sh
(4)linux腳本擴展閱讀:
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。
腳本(Script)是使用一種特定的描述性語言,依據一定的格式編寫的可執行文件,又稱作宏或批處理文件。
Linux系統的shell作為操作系統的外殼,為用戶提供使用操作系統的介面。它是命令語言、命令解釋程序及程序設計語言的統稱。
shell是用戶和Linux內核之間的介面程序,如果把Linux內核想像成一個球體的中心,shell就是圍繞內核的外層。當從shell或其他程序向Linux傳遞命令時,內核會做出相應的反應。
shell是一個命令語言解釋器,它擁有自己內建的shell命令集,shell也能被系統中其他應用程序所調用。用戶在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。
Ⅳ linux 中如何執行腳本
ash shell 腳本的方法有多種,現在作個小結。假設我們編寫好的shell腳本的文件名為hello.sh,文件位置在/data/shell目錄中並已有執行許可權。
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
方法二:以絕對路徑的方式去執行bash shell腳本:
/data/shell/hello.sh
方法三:直接使用bash 或sh 來執行bash shell腳本:
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。
方法四:在當前的shell環境中執行bash shell腳本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
Ⅵ 怎麼編寫一個linux腳本文件
Shell終端解釋器形容是人與計算機硬體的「翻譯官」,它作為用戶與Linux系統內部通訊的媒介,除了允許了各種變數與參數外還提供了諸如循環、分支等高級語言才有的控制結構特性,如何正確的使用這些功能,准確下達命令就顯得尤為重要。Shell中腳本命令的工作方式有兩種,首先是咱們前面所接觸的交互方式(Interactive),即當用戶每輸入一條命令就執行一次,而批處理(Batch)則是由用戶事先編寫好一個完整的Shell腳本,Shell會一次性執行腳本中諸多的命令。因此在Shell腳本中不僅需要用到很多前面學習過的Linux命令以及正則表達式、管道符、數據流重定向等語法規則,還需要將內部功能模塊化後通過邏輯語句進行加工,最終才能成為咱們日常所見的Shell腳本程序。先來查看下系統中所有可用的Shell解釋器:
[root@linuxprobe ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
另外查看到bash已經是咱們目前的終端解釋器了:
[root@linuxprobe ~]# echo $SHELL
/bin/bash
估計讀者看完上面對Shell腳本如此復雜的描述都有一種心累想放棄的感覺了吧,但這僅指的是一個高深Shell腳本的編寫原則,其實當咱們使用vim編輯器將linux命令按照順序依次寫入文件就是編寫完成一個最簡單的腳本啦。例如咱們想查看當前所在工作路徑並列出當前目錄下所有文件及屬性信息,編寫一個腳本來完成的話是這樣:
[root@linuxprobe ~]# vim example.sh
#!/bin/bash
#For Example BY linuxprobe.com
pwd
ls -al
Shell腳本文件的名稱是可以任意起,但為了避免其他同事誤以為是普通文件,咱們應該符合運維行業人員大眾的規范將.sh後綴寫上,這樣讓其他人一看就知道是個腳本文件,與人方便自己方便。在這個腳本中實際上出現了三種不同的元素,第一行腳本聲明(#!)是用來告知系統用何種shell解釋器來執行本腳本程序,第二行注釋信息(#)是對程序功能和某些命令的介紹信息,使得自己或他人再次看到這個腳本內容時可以快速知道這些功能的作用或一些警告信息,第三、四行可執行語句也就是咱們平時執行的Linux命令啦~什麼?你不相信這么簡單就編寫出來了一個腳本程序,那咱們來執行看一看吧:
[root@linuxprobe ~]# bash example.sh
/root/Desktop
total 8
drwxr-xr-x. 2 root root 23 Jul 23 17:31 .
dr-xr-x---. 14 root root 4096 Jul 23 17:31 ..
-rwxr--r--. 1 root root 55 Jul 23 17:31 example.sh
第二種運行腳本程序的方法是以輸入完整路徑的方式來執行,但默認會因為許可權不足而提示報錯信息,這種情況只需要為腳本文件增加執行許可權即可(在第五章會詳細講到):
[root@linuxprobe ~]# ./example.sh
bash: ./Example.sh: Permission denied
[root@linuxprobe ~]# chmod u+x example.sh
[root@linuxprobe ~]# ./example.sh
/root/Desktop
total 8
drwxr-xr-x. 2 root root 23 Jul 23 17:31 .
dr-xr-x---. 14 root root 4096 Jul 23 17:31 ..
-rwxr--r--. 1 root root 55 Jul 23 17:31 example.sh
這只是最簡單的,你可以看下http://www.linuxprobe.com/chapter-04.html#42_Shell學習下shell腳本!
Ⅶ linux腳本里的#! 是什麼意思
家目錄/用戶目錄。比如:我的用戶名是user,那一般我的家目錄就是/home/user/,裡面是我的文件和設置。#就是指的這個目錄,你可以試試,在終端或者終端模擬器裡面輸入cd #,就可以直接到達你的用戶目錄。
Ⅷ Linux shell 腳本中, $@ 和$# 分別是什麼意思
直接看示例:
[root@localhost xly]# cat t.sh
#!/bin/bash
echo $#
echo $@
[root@localhost xly]# sh t.sh
0
[root@localhost xly]# sh t.sh a b c
3
a b c
說明:
$@表示所有參數
$#表示所有參數的個數