天天看點

shell腳本幾個常見問題

1、在shell腳本成功執行前,如何中斷腳本執行?

使用exit指令實作。在Unix環境下的shell腳本中,0值表示成功執行。是以,在腳本終止前執行一個不帶引号的‘exit -1’指令将使腳本中止。

例如:建立如下名為iniexit.sh的腳本

#!/bin/sh

echo "hello"

exit -1

echo "bye"

儲存并執行該腳本:

root@ypyu-VirtualBox:/usr/local/shellscript/code/mytest# ./iniexit.sh 

hello

從上面的腳本中可以清楚地看到,在exit -1指令前,腳本執行得很好。

2、如何使用Linux指令來移除檔案頭?

解答:當我們需要删除檔案中的指定行時,‘sed’指令可以用來解決該問題。

這個是用來删除檔案頭(檔案的首行)的正确指令。

# sed '1 d' file.txt      

上面指令的問題是,它會在标準輸出裝置上輸出不帶首行的檔案内容。為了儲存輸出到檔案,我們需要使用重定向操作符,它将幫助你将輸出重定向到檔案。

# sed '1 d' file.txt > new_file.txt      

好吧,其實sed指令内建的‘-i’開關就可以幹這活,就不需要重定向符了吧。

# sed -i '1 d' file.txt      

3、你怎麼檢查一個文本檔案中某一行的長度?

‘sed’指令也可以用來查找文本檔案中的某一行或者檢查其長度。

‘sed -n ‘n p’ file.txt’可以解決,這裡‘n’表示行号,‘p’列印出比對内容(到标準輸出),該指令通常與-n指令行選項連用。那麼,怎樣來擷取長度計數呢?很明顯,我們需要通過管道輸出給‘wc’指令來計算。

# sed –n 'n p' file.txt | wc –c      

要得到文本檔案‘tecmint.txt’的第五行的長度,運作如下指令:

# sed -n '5 p' tecmint.txt | wc -c      

4、可以在Linux系統上檢視到所有非列印字元嗎?你是怎麼做到的?

在vi編輯器的指令界面輸入set list指令并執行。

5、假如你是一個員工組的團隊上司,為xyz公司工作。公司要求你建立一個‘dir_xyz’目錄,讓該組成員都能在該目錄下建立或通路檔案,但是除了檔案建立者之外的其他人不能删除檔案,你會怎麼做?

答:這真是個有趣的工作方案。好吧,上面所講的方案,我們需要通過下面的步驟來實施,這簡直就是小菜一碟。
# mkdir dir_xyz # chmod g+wx dir_xyz # chmod +t dir_xyz      

繼續閱讀