shell指令碼執行方式,更方便更快捷。

2021-09-22 10:00:05 字數 2555 閱讀 7672

可以將執行**一行行寫在配置檔案指令碼中

更改其屬性 

執行shell指令碼程式

在shell指令碼中可以使用三類命令:

1)unix 命令:

雖然在shell指令碼中可以使用任意的unix命令,但是還是由一些相對更常用的命令。這些命令通常是用來進行檔案和文字操作的。

常用命令語法及功能

sed: sed是乙個基本的查詢替換程式。可以從標準輸入(比如命令管道)讀入文字,並將結果輸出到標準輸出(螢幕)。該命令採用正規表示式(見參考)進行搜尋。不要和shell中的萬用字元相混淆。比如:將linuxfocus 替換為 linuxfocus :cat text.file | sed ''s/linuxfocus/linuxfocus/'' > newtext.fileawk: awk

用來從文字檔案中提取字段。預設地,字段分割符是空格,可以使用-f指定其他分割符。cat   file.txt | awk -f, ''''這裡我們使用,作為字段分割符,同時列印第乙個和第三個字段。如果該檔案內容如下: adambor, 34, indiakerry miller, 22, usa命令輸出結果為:adambor, indiakerry miller, usa

2) 概念: 管道, 重定向和 backtick

這些不是系統命令,但是他們真的很重要。管道 (|) 將乙個命令的輸出作為另外乙個命令的輸入。

grep "hello" file.txt | wc -l

在file.txt中搜尋包含有」hello」的行並計算其行數。

在這裡grep命令的輸出作為wc命令的輸入。當然您可以使用多個命令。

重定向:將命令的結果輸出到檔案,而不是標準輸出(螢幕)。

>  寫入檔案並覆蓋舊檔案

>> 加到檔案的尾部,保留舊檔案內容。

反短斜線

使用反短斜線可以將乙個命令的輸出作為另外乙個命令的乙個命令列引數。

命令: find . -mtime -1 -type f -print 用來查詢過去24小時(-mtime –2則表示過去48小時)內修改過的檔案。如果您想將所有查詢到的檔案打乙個包,則可以使用以下指令碼:

#!/bin/sh

# the ticks are backticks (`) not normal quotes (''):

tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f

-print`

3) 流程控制"if" 表示式 如果條件為真則執行then後面的部分:

if ....; then

....

elif ....; then

....

else

....

fi

大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字串、判斷檔案是否存在及是否可讀等等…通常用" [ ] "來表示條件測試。注意這裡的空格很重要。要確保方括號的空格。

5. 執行指令碼 linux下的s**件預設是有執行許可權的。我們可以用命令:ls -l file_name來檢視使用者對檔案的許可權。如果沒有執行許可權,可以執行以下命令新增:chmod +x file_name。然後可以通過執行:sh xx.sh這樣的命令來執行指令碼。當然不同的系統可能不完全相同,需要根據實際情況來。例如有的linux下是./xx.sh就可以執行。

概括地來說,shell對shell指令碼的呼叫可以採用3種方式:

(1)一種是將檔名作為shell命令的引數,其呼叫格式為:

$ bash script_file
當要被執行的指令碼檔案沒有可執行許可權時,只能使用這種呼叫方式。

(2)另一種呼叫的方法是先將指令碼檔案的訪問許可權更改為可執行,以便該檔案可以作為執行檔案呼叫。

具體的方法是:$chmod +x  script_file

$path=$path:$pwd

$script_file

(3)當執行乙個指令碼檔案時,shell就產生了乙個shell(即乙個子程序)去執行檔案中的命令。因此,指令碼檔案的變數值不能傳遞到當期shell(即父程序)。為了使指令碼檔案中的變數值傳遞到當前shell,必須在命令檔名前面加「.」。即:

$./script_file
「.」命令的功能是在當前shell中執行指令碼檔案中的命令,而不是產生乙個子shell執行命令檔案中的命令。

更多參考:

python tutor 更方便的debug神器

這次試了一下,果然比debug更為直觀,不過不能無縫從leetcode貼上過來 一遍雜湊表 class solution def twosum nums,target d for i in range len nums if target nums i in d return d target nu...

shell指令碼執行方式

echo輸出命令 echo 選項 輸出內容 選項 e 支援反斜線控制的字元轉換 shell指令碼 指令碼都以.sh結束,指令碼第一行 bin bash 以hello.sh簡單指令碼為例 指令碼執行有兩種方法 這裡出現了no such file or directory 原因是格式不匹配,解決方案 d...

python 讓挑選家具更方便

家中想置辦些家具,聽朋友介紹說蘇州蠡 li第二聲 口的家具比較出名,因為工作在蘇州,也去那邊看過,簡直.走斷雙腿都逛不完,更何況還疲於逛街的。也瀏覽過家具城的官網,本著在一定的預算範圍之類挑選最合適的,作為乙個程式猿,一顆不安分的心,決定自己爬蟲下 列出個excel 也方便給父母輩們檢視,順帶再練習...