Linux下shell編程執行個體

來源:互聯網
上載者:User

標籤:class   tar   檔案   linux   name   for   

1. 判斷一檔案是不是塊或字元裝置檔案,如果是將其拷貝到 /dev 目錄下


read -p "input a file:" filename

if [ -b $filename -o -c $filename ]
then
cp $filename /dev/

fi


2.編寫一個指令碼,進行簡單的減法運算,要求提示輸入變數


#!/bin/bash
read -p "input a number:" num1
read -p "input another number:" num2
let "num3=num1-num2"
echo $num3



3.把某個目錄下的副檔名改為bat,再以時間為檔案名稱壓縮打包存放到某個目錄。


#!/bin/bash
for file in $(ls $1)
do
new_file=${file%.*}.bat
mv ./$1/$file ./$1/$new_file
tmp=$(date +%y)
tar cvf ./$tmp.tar ./$1
done

4.判斷一個數是不是完數。列印出1-1000之間的完數。 完數就是約數的和等於自身2倍的數。(6,28,496)

#!/bin/bash
sub()
{
i=1;
sum=0;
while [ $i -le $num ]
do
let "m=num%i"
if [ $m -eq 0 ]
then
let "sum=sum+i"
fi
let "i=i+1"
done
let "a=2*num"
if [ $a -eq $sum ]
then
echo $num
fi
}
num=1
while [ $num -le 1000 ]
do
sub
let "num = num+1"
done


5.在某個檔案夾下尋找含有指定字串的檔案

#!/bin/bash
for file in $(ls $2)
do
bname=$(grep -l $1 $2/$file)
basename $bname
done


6.添加一個新組為class1,然後添加屬於這個組的30個使用者,使用者名稱的形式為stdxx,其中xx從01到30。

#!/bin/bash
groupadd class1
for i in {9901..9930}
do
xx=$(echo $i | sed ‘s/99//‘);
useradd -g class1 std$xx -p ""
done


7.設計一個Shell程式,在/userdata目錄下建立50個目錄,即user1~user50,並設定每個目錄的許可權,其\中其他使用者的許可權為:讀;檔案所有者的許可權為:讀、寫、執行;檔案所有者所在組的許可權為:讀、執行。

#!/bin/bash
for ((i=1;i<=50;i++))
do
mkdir -p /usrdata/user$i
cd /usrdata
chmod 754 user$i
done


8. 寫一個指令碼,利用迴圈計算10的階乘
#!/bin/sh
factorial=1
for a in `seq 1 10`
do
factorial=` expr $factorial \* $a `
done
echo "10! = $factorial"

9.刪除目前的目錄下大小為0的檔案
#/bin/bash
for filename in `ls`
do
if test -d $filename
then b=0
else 
a=$(ls -l $filename | awk ‘{ print $5 }‘)
if test $a -eq 0
then rm $filename
fi
fi 
done



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.