shell練習二 基礎和語法

2021-08-09 05:15:34 字數 2077 閱讀 2869

1:使用shell指令碼,測試檔案拷貝是否正常,如果正常,則顯示「good copy」;如果cp命令並沒有拷貝檔案myfile到myfile.bak,則列印錯誤資訊。

指令碼:#!/bin/sh

if cp myfile myfile.bak;then

echo"good copy"

else

echo"'$0':error!!could not copy file"

fi執行結果:

2:設計乙個 shell 程式,新增乙個新組為 class1,然後新增屬於這個組的 30 個使用者,使用者名稱的形式為stdxx,其中 xx 從 01 到 30。

指令碼:#!/bin/sh

groupadd class1

for((i=1;i<=30;i++))do

if((i<10));then

username=stu0$

else

username=stu$

fiuseradd-g class1 $username

echo111|passwd --stdin $username#將密碼設為111且不再詢問無論如何都使用

done

執行結果:

3:編寫 shell 程式,實現自動刪除 50 個賬號的功能。賬號名為stud1 至 stud50。

指令碼:#!/bin/sh

for((i = 1;i<=30;i++))do

if [ $i -lt 10 ] ;then

userdel -r stu0$ 2> /dev/null

echo "stu0$ delete successfully"

else

userdel -r stu$ 2> /dev/null

echo "stu$ delete successfully"

fidone

執行結果:

4:設計乙個 shell 程式,在/userdata 目錄下建立 50 個目錄,即 user1~user50,並設

置每個目錄的許可權,其中其他使用者的許可權為:讀100(4);檔案所有者的許可權為:讀、寫、執行(7);檔案所有者所在組的許可權為:讀、執行101(5)。754

指令碼:#!/bin/sh

for((i = 1;i<=50;i++))do

if [ -e /userdata ] ;then

mkdir -p -m 754 /userdata/user$i

echo "user$i createsuccssfully"

else

mkdir /userdata

mkdir -p -m 754 /userdata/user$i

echo "user$i createsuccssfully"

fidone

執行結果:

擴充套件提高:用 shell 程式設計,判斷一檔案是不是字元裝置檔案,如果是將其拷貝到/dev 目錄下?

#!/bin/bash

directory=/dev

for file in anaconda-ks.cfg install.log install.log.syslog

doif [ -f $file ]

then

cp $file$directory/$file.bak

echo" hi, $logname $file is backed up already in $directory !!"

fidone

shell語法和寫指令碼練習

列印uid在30 40範圍內的使用者名稱。列印第5 10行的行號和使用者名稱 列印奇數行 列印偶數行 列印字段數大於5的行 列印uid不等於gid的使用者名稱 列印沒有指定shell的使用者 echo 開始安裝.yum install epel release y yum install nginx...

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 ...