我們為你的面試準備選擇了 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 param2b) 通過 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 單執行緒還是多...