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