⑴ 如何運行shell命令第一行為什麼是# !/bin/sh
因為shell程序是解釋執行的,所以不需要編譯裝配成目標程序,按照shell編程的慣例,以bash為例,程序的第一行一般為 「# !/bin/bash」,其中# 表示該行是注釋,嘆號「!」告訴shell運行嘆號之後的命令並用文件的其餘部分作為輸入,也就是運行/bin/bash並讓/bin/bash去執行shell程序的內容。 執行shell程序的方法有三種:1、sh shell程序文件名 這種方法的命令格式為: bash shell程序文件名 這實際上是調用一個新的bash命令解釋程序,而把shell程序文件名作為參數傳遞給它。新啟動的shell將去讀指定的文件,執行文件中列出的命令,當所有的命令都執行完結束。該方法的優點是可以利用shell調試功能。 2、sh<shell程序文件名 格式為: bash<shell 程序文件名 這種方式就是利用輸入重定向,使shell命令解釋程序的輸入取自指定的程序文件。 3、用chmod命令使shell程序成為可執行的 一個文件能否運行取決於該文件的內容本身可執行且該文件具有執行權。對於shell程序,當用編 輯器生成一個文件時,系統賦予的許可許可權都是644(rw-r-r--),因此,當用戶需要運行這個文件時, 只需要直接鍵入文件名即可。 在這三種運行shell程序的方法中,最好按下面的方式選擇:當剛建立一個shell程序,對它的正確性還沒有把握時,應當使用第一種方式進行調試。當一個shell程序已經調試好時,應使用第三種方式把它固定下來,以後只要鍵入相應的文件名即可,並可被另一個程序所調用。
⑵ shell grep 的結果只取第一行
可以使用head -1 命令來只取grep到的數據的第一行。
例如一個文本文檔a.txt內容是:
北京是我們的首都
北京天安門坐落在中華人民共和國首都北京市的中心
我在北京天安門廣場吃炸雞
使用命令 cat a.txt |grep 北京 | head -n 1 可以只取到第一行的數據北京。
(2)linuxshell第一行擴展閱讀
Linux中head命令詳解:
head命令與tail命令用法相似,head命令用於查看文檔的開始指定數量的字元塊,默認顯示文檔的前 10 行,如果給定的文件不止一個,則在顯示的每個文件前面加一個文件名標題。
1、grep命令用法格式
head 【參數】【文件】
2、命令選項
-c, --bytes=[-]K k,顯示文檔開始的前k個位元組,-k,不顯示文檔結尾的最後 k 個位元組
-n, --lines=[-]K k,顯示文檔開始的前k行,-k,不顯示文檔結尾的最後 k 行
-q, --quiet, --silent 不顯示包含給定文件名的文件頭
-v, --verbose 總是顯示包含給定文件名的文件頭
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出
3、實例
#顯示前5行
head -n 5 head.txt
#顯示前5個位元組
head -c 5 head.txt
⑶ 在linux的shell編程中如何截取一段命令返回值的第一行
ifconfig eth0|grep eth0|awk '{print $5}' |head -1
head命令是取輸入的流的頭部,可以指定行數
tail命令是取輸入的流的尾部
⑷ linux shell腳本執行命令詳解
在Linux下,如果你需要執行shell腳本,那麼應該使用那個命令呢?下面由我為大家整理了linux shell腳本執行命令的相關知識,希望對大家有幫助!
linux shell腳本執行
linux shell腳本執行方法一: 切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
linux shell腳本執行方法二: 以絕對路徑的方式去執行bash shell腳本:
/data/shell/hello.sh
linux shell腳本執行方法三: 直接使用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路徑自然也好理解了啊。
linux shell腳本執行方法四: 在當前的shell環境中執行bash shell腳本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。