題目要求
判斷所給目錄內哪些二級目錄下有沒有text.txt檔案。
有text.txt檔案的二級目錄,計算出該test.txt檔案裡面所給出單詞的次數。
假如指令碼名字為1.sh, 執行指令碼的格式為 ./1.sh 123 root,其中123為目錄名字,而root為要計算數量的單詞。
參***
#!/bin/bash
#這個指令碼用來判斷檔案是否存在並計算單詞個數
#日期:2018-12-11
if [ $# -ne 2 ]
then
echo "請提供兩個引數,第乙個引數是目錄名字,第二個引數是單詞"
exit
ficd $1
for f in `ls .`
do if [ -d $f ]
then
if [ -f $f/test.txt ]
then
n=`grep -cw "$2" $f/test.txt`
echo "$1/$f目錄下面有test.txt, 該test.txt裡面的有$n個$2."
fi fi
done
題目要求
互動式指令碼,根據提示,需要使用者輸入乙個數字作為引數,最終列印出乙個正方形。在這裡我提供乙個linux下面的特殊字元■,可以直接列印出來。
示例: 如果使用者輸入數字為5,則最終顯示的效果為
■ ■ ■ ■ ■
■ ■ ■ ■ ■
■ ■ ■ ■ ■
■ ■ ■ ■ ■
■ ■ ■ ■ ■
參***#!/bin/bash
#這個指令碼用來列印正方形
#日期:2018-12-11
while :
do read -p "please input a nuber: " n
n1=`echo $n|sed 's/[0-9]//g'`
if [ -n "$n1" ]
then
echo "$n is not a nuber."
continue
else
break
fidone
for i in `seq 1 $n`
do for j in `seq 1 $n`
doecho -n "■ "
done
echo
done
題目要求
寫乙個指令碼,依次向/etc/passwd中的每個使用者問好,並且說出對方的id是什麼,如:
hello, root,your uid is 0.
參***
#!/bin/bash
#這個指令碼用來問候使用者
#日期:2018-12-11
cat /etc/passwd |while read line
do username=`echo $line|awk -f ':' ''`
uid=`echo $line|awk -f ':' ''`
echo "hello, $username, your uid is $uid."
done
題目要求
linux系統 /home目錄下有乙個檔案test.xml,內容如下:
zzz
aaa ***
yyy
請寫出shell指令碼刪除檔案中的注釋部分內容,獲取檔案中所有artifactitem的內容,並用如下格式逐行輸出:
artifactitem:groupid:artifactid:aaa
參***
#!/bin/bash
#這個指令碼用來格式化xml檔案
#日期:2018-12-11
sed '//d' test.xml > test2.xml
egrep -n '' test2.xml |awk -f ':' '' > /tmp/line_number1.txt
n=`wc -l /tmp/line_number1.txt|awk ''`
n1=$[$n/2]
for i in `seq 1 $n1`
do j=$[$i*2]
k=$[$j-1]
x=`sed -n "$k"p /tmp/line_number1.txt`
y=`sed -n "$j"p /tmp/line_number1.txt`
sed -i "$x,$y"d test2.xml
done
grep -n 'artifactitem>' test2.xml |awk '' |sed 's/://' > /tmp/line_number2.txt
n2=`wc -l /tmp/line_number2.txt|awk ''`
get_value()'|awk -f '>' '' > /tmp/value.txt
cat /tmp/value.txt|while read line
dox=`echo $line|awk ''`
y=`echo $line|awk ''`
echo artifactitem:$x:$y
done
}n3=$[$n2/2]
for j in `seq 1 $n3`
do m1=$[$j*2-1]
m2=$[$j*2]
nu1=`sed -n "$m1"p /tmp/line_number2.txt`
nu2=`sed -n "$m2"p /tmp/line_number2.txt`
nu3=$[$nu1+1]
nu4=$[$nu2-1]
get_value $nu3 $nu4
done
題目要求
請撰寫乙個shell函式,函式名為 f_judge,實現以下功能
當/home/log目錄存在時將/home目錄下所有tmp開頭的檔案或目錄移到/home/log目錄。
當/home/log目錄不存在時,建立該目錄,然後退出。
參***
#!/bin/bash
#這個指令碼用來寫乙個小函式
#日期:2018-12-11
f_judge()
/home/log/
find /home -name "tmp*" -exec mv {} /home/log/ \;
else
mkdir /home/log
exit
fi}f_judge
shell指令碼100例
1 判斷檔案或目錄是否存在 bin bash if eq 0 then echo 未輸入任何引數,請輸入引數 echo 用法 0 檔名 目錄名 fiif f 1 then echo 該檔案,存在 ls l 1 else echo 沒有該檔案 fiif d 1 then echo 該目錄,存在 ls ...
shell指令碼100例
15 編寫指令碼,顯示進度條 bin bash jindu jindu cp a 1 2 killall 0 echo 拷貝完成 16 進度條,動態時針版本 定義乙個顯示進度的函式,螢幕快速顯示 bin bash rotate line rotate line 21 使用 expect 工具自動互動...
shell指令碼100例
31 使用指令碼迴圈建立三位數字的文字檔案 111 999 的檔案 bin bash for i in dofor j in dofor k in dotouch tmp i iij k.txt done done done 32 統計 etc passwd 中 root 出現的次數 bin bas...