我們為你的面試準備選擇了 70 個你可能遇到的 shell 腳本面試問題及解答。了解腳本或至少知道基礎知識對系統管理員來說至關重要,它也有助于你在工作環境中自動完成很多任務。在過去的幾年里,我們注意到所有的 linux 工作職位都要求腳本技能。
1) 如何向腳本傳遞參數 ?
./script argument
例子: 顯示文件名稱腳本
./show.sh file1.txtcat show.sh#!/bin/bashecho $1
(LCTT 譯注:謝謝某匿名訪客的提醒,原題有誤,修改之。)
2) 如何在腳本中使用參數 ?
第一個參數 : $1,第二個參數 : $2
例子 : 腳本會復制文件(arg1) 到目標地址(arg2)
./copy.sh file1.txt /tmp/cat copy.sh#!/bin/bashcp $1 $2
3) 如何計算傳遞進來的參數 ?
$#
4) 如何在腳本中獲取腳本名稱 ?
$0
5) 如何檢查之前的命令是否運行成功 ?
$?
6) 如何獲取文件的最后一行 ?
tail-1
7) 如何獲取文件的第一行 ?
head-1
8) 如何獲取一個文件每一行的第三個元素 ?
awk'{print $3}'
9) 假如文件中每行第一個元素是 FIND,如何獲取第二個元素
awk'{ if ($1 == "FIND") print $2}'
10) 如何調試 bash 腳本
將 -xv 參數加到 #!/bin/bash 后
例子:
#!/bin/bash –xv
11) 舉例如何寫一個函數 ?
function example {echo "Hello world!"}12) 如何向連接兩個字符串 ?
V1="Hello"V2="World"V3=${V1}${V2}echo $V3輸出
HelloWorld
13) 如何進行兩個整數相加 ?
V1=1V2=2let V3=$V1+$V2echo $V3
輸出
3
據 @kashu 的意見,本題的更佳回答為:
兩個整數相加,還有若干種方法實現:
A=5B=6echo $(($A+$B)) # 方法 2echo $[$A+$B] # 方法 3expr $A + $B # 方法 4echo $A+$B | bc # 方法 5awk 'BEGIN{print '"$A"'+'"$B"'}' # 方法 614) 如何檢查文件系統中是否存在某個文件 ?
if [ -f /var/log/messages ]thenecho "File exists"fi
15) 寫出 shell 腳本中所有循環語法 ?
for 循環 :
foriin$(ls);doecho item:$idone
while 循環 :
#!/bin/bashCOUNTER=0while [ $COUNTER -lt 10 ]; doecho The counter is $COUNTERlet COUNTER=COUNTER+1done
until 循環 :
#!/bin/bashCOUNTER=20until [ $COUNTER -lt 10 ]; doecho COUNTER $COUNTERlet COUNTER-=1done
16) 每個腳本開始的
新聞熱點
疑難解答