shell編寫基礎練習

2021-09-13 16:35:40 字數 3750 閱讀 2310

shell script練習

1.設定和顯示變數,編寫乙個名為sayhello的script,放置於你的啟動檔案中,當你登陸進系統時能根據當時系統時間顯示一條歡迎資訊,比如:

good morning

good afternoon

good evening

1、script:

#!/bin/bash

#if statement aplication

hh=date '+%h'

date

if [ $hh -gt 12 -a $hh -le 18 ]

then

echo 「good afternoon!」

elif [ $hh -gt 0 -a $hh -le 12 ]

then

echo 「good moring!」

else

echo 「good evening!」

fi#end

2.編寫乙個script能接受乙個目錄作為命令列引數,如果傳入的引數個數多於或少於1,顯示乙個使用資訊提示,比如:「usage: program directory」。如果這個引數不是乙個目錄,顯示乙個錯誤資訊。如果是乙個目錄,顯示出此目錄下的所有檔案,然後再顯示出最大的五個檔案。

2、script:

#!/bin/bash

read -t 30 -p 「請輸入:」 dirr

if [ ! katex parse error: expected 'eof', got '#' at position 1: #̲ -ne 1 ] then …dirr" ];

then

ls $dirr

else

echo 「wrong!」

exit 1

fifi

#end

3.編寫乙個script, 建立目錄/tmp/scripts, 切換工作目錄到此目錄中,複製你home下的某個目錄到當前目錄,並重命名為test,將test裡的檔案及其下的目錄的其他使用者許可權改為沒有任何許可權。

3、script:

#!/bin/bash

#name:cp.bash

mkdir -v /tmp/scripts

cd /tmp/scripts

cp -r /home/scripts_home ./test

chmod -r o=— ./test

4.編寫乙個script, 顯示當前系統日期和時間,而後建立目錄/tmp/lstest, 切換工作目錄至/tmp/lstest, 建立目錄a1d,b56e,6test, 建立空檔案xy,x2y,732, 列出當前目錄下以a,x或者6開頭的檔案或目錄, 列出當前目錄下以字母開頭,後跟乙個任意數字,而後跟任意長度字元的檔案或目錄。

4、script:

#!/bin/bash

#name:date.bash

date

mkdir -pv /tmp/lstest

cd /tmp/lstest

mkdir a1d b56e 6test

touch xy x2y 732

ls [ax6]*

ls [[:alpha:]][[:digit:]]*

#end

5.編寫乙個script檢視根目錄下是否存在某個檔案。

5、script:

#name filee.bash

read -p 「please input :」 file1

if [ -f 「$file1」 ]

then

echo 「檔案存在」

else

echo 「檔案不存在」

fi#end

6.編寫乙個script刪除當前目錄下大小為0的檔案。

6、script:

#!/bin/bash

#name:delete.bash

for file inls|tr " " "?"

doif [ ! -s 「fil

e"−a

!−d"

file" -a ! -d "

file"−

a!−d

"file」 ]; then

rm -f 「$file」

fidone

#end

7.編寫乙個script顯示某個檔案中從指定行數到下乙個指定行數的內容。例如:

$q2 5 5 myfile

即程式q2顯示出檔案myfile中從第5行開始,接下來5行的內容。

7、script:

#!/bin/bash

#name:rawd

echo 「此檔案內容:」

cat 3.txt

read -t 30 -p 「請輸入初始行:」 start

read -t 30 -p 「請輸入末尾行:」 end1

read -t 30 -p 「請輸入檔名:」 filename

cat 3.txt| head -n end

1∣ta

il−n

+end1 | tail -n +

end1∣t

ail−

n+start

#end

8.編寫乙個script把某個目錄下的所有檔名小寫的改為大寫。

8、script:

#!/bin/bash

#name:aatt.bash

read -t 30 -p 「請輸入:」 dirr

cd dir

rfor

file

in∗[

a−z]

∗;do

mv

"dirr for file in *[a-z]*; do mv "

dirrfo

rfil

ein∗

[a−z

]∗;d

omv"

file" 「$(echo $file | tr 『[a-z]』 『[a-z]』)」

done

echo 「transfer finished!」

#end

9.編寫乙個script判斷命令列引數($1)是否包含「」,如果沒有包含「」,在($1)後面加上,反之則顯示資訊symbol is not required

9、script:

#!/bin/bash

echo 「file name: $0」

echo 「first parameter : $1」

echo 「first parameter : $2」

echo 「quoted values: $@」

echo 「quoted values: $"

echo "total number of parameters : katex parse error: expected 'eof', got '#' at position 1: #̲" result=(echo $1 | grep "」)

s1=1if

[[

"1 if [[ "

1if[["

result" != 「」 ]]

then

echo 「包含,symbol is not required」

else

echo $"*"

fi

shell基礎練習

shell基礎練習 1 編寫shell指令碼,實現1 100的猜數字遊戲。bin bash random隨機函式,100取餘就可以獲得1 100的隨機整數 n random 100 while doread p 請輸入乙個1 100間的整數 n1 n2 echo n1 sed s 0 9 g if ...

shell基礎練習

shell基礎練習 1 編寫shell指令碼,實現1 100的猜數字遊戲。bin bash random隨機函式,100取餘就可以獲得1 100的隨機整數 n random 100 while doread p 請輸入乙個1 100間的整數 n1 n2 echo n1 sed s 0 9 g if ...

shell基礎練習

1.shell變數和陣列,返回值 變數 root gimi1 a test root gimi1 echo a test root gimi1 a 1 root gimi1 echo a a陣列 取單個值 root gimi1 echo 從左邊往右取 1 root gimi1 echo 從右邊往左取...