Shell 指令碼面試問題大全

2021-09-03 10:30:25 字數 3711 閱讀 7345

我們為你的面試準備選擇了 70 個你可能遇到的 shell 指令碼面試問題及解答。了解指令碼或至少知道基礎知識對系統管理員來說至關重要,它也有助於你在工作環境中自動完成很多任務。在過去的幾年裡,我們注意到所有的 linux 工作職位都要求指令碼技能。

./script argument
例子: 顯示檔名稱指令碼

./show.sh file1.txtcat show.sh#!/bin/bashcat $1

第乙個引數 : $1,第二個引數 : $2

例子 : 指令碼會複製檔案(arg1) 到目標位址(arg2)

./copy.sh file1.txt /tmp/cat copy.sh#!/bin/bashcp $1 $2

$#

$0

$?

tail -1

head -1

awk ''

awk ''

將 -xv 引數加到 #!/bin/bash 後

例子:

#!/bin/bash –xv

function example

v1="hello"v2="world"v3=$$echo $v3
輸出

helloworld

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'   # 方法 6

if [ -f /var/log/messages ]thenecho "file exists"fi

for 迴圈 :

for i in $( 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

這一行說明要使用的 shell。#!/bin/bash 表示指令碼使用 /bin/bash。對於 python 指令碼,就是 #!/usr/bin/python。(lctt譯註:這一行稱之為釋伴行。)

head -10 file|tail -1

#
0
使變數在子 shell 中可用。

在指令碼後面新增 「&」。

據 @kashu 的意見,更好的答案是:

nohup command &
大部分時間我們可能是遠端使用linux,我碰到過由於網路斷線使得在後台執行的command &沒了...

使指令碼所有者擁有可執行許可權。

重定向輸出流到檔案或另乙個流。

當條件滿足時需要執行多條命令的時候。

my name is $name

#

variable

在指令碼檔案中新增 "exec >log.txt 2>&1" 命令。

echo $x - 起始位置y - 長度
例子:

variable="my name is petras, and i am developer."echo $ # 會顯示 petras

echo $

echo $
echo $

echo $

awk -f: '$3<100' /etc/passwd

cat /etc/passwd|cut -d: -f4|sort|uniq -c|while read c gdo|xargs -n 2done

ifs=":"

$

echo $

echo $

tr '[:lower:]' '[:upper:]'

wc -l /etc/passwd|cut -d" " -f1 或者 cat /etc/passwd|wc -l

set $echo $#

export variable

ls -d ?[ab]*

c=$((a+b))

c=`expr $a + $b`

c=`echo "$a+$b"|bc`

echo $string|tr -d " "

item="car"; echo "i like $s"
for i in ; do echo $i; done

for (( i=0; i<=100; i=i+3 )); do echo "welcome $i times"; done

echo $*

echo $@

[ $a -gt 12 ]

[ $b -le 12 ]

[[ $string == abc* ]]

egrep "^ab|^xy" /etc/passwd|cut -d: -f1

後台最近執行命令的 pid.

前台最近命令的結束狀態。

echo $$

echo $#
(lctt 譯註:和第3題重複了。)

array=("hi" "my" "name" "is")

echo $

echo $

echo $

unset array[2]

array[333]="new_element"

a) 通過引數

./script param1 param2
b) 通過 read 命令

read -p "destination backup server : " desthost

/usr/bin/expect << eodspawn rsync -ar $ $:$expect "*?assword:*"send "$\r"expect eofeod

Shell 指令碼面試問題大全

我們為你的面試準備選擇了 70 個你可能遇到的 shell 指令碼面試問題及解答。了解指令碼或至少知道基礎知識對系統管理員來說至關重要,它也有助於你在工作環境中自動完成很多任務。在過去的幾年裡,我們注意到所有的 linux 工作職位都要求指令碼技能。script argument例子 顯示檔名稱指令...

經典的 Shell 指令碼面試問題

如下是一些面試過程中,經常會遇到的 shell 指令碼面試問題及解答。了解指令碼或至少知道基礎知識對測試工程師來說至關重要,它也有助於你在工作環境中自動完成很多任務。你會發現,現在多數的測試工程師招聘要求中,都需要 linux基礎技能,及基本的shell指令碼技能。如下是一些常見的shell指令碼面...

前端面試問題大全

link 和 import 有什麼區別?偽元素和偽類的區別?css盒子模型有哪幾部分組成,並畫出盒子模型 行內元素和塊級元素有什麼區別,分別寫出至少5個元素 寫出css權重優先順序 淺拷貝和深拷貝的區別 var,let,const的區別 什麼是原型鏈?對閉包的理解,有哪些優缺點 js 單執行緒還是多...