linux下shell编程课程设计,Linux下shell编程实例
1.?推斷一文件是不是塊或字符設(shè)備文件。假設(shè)是將其復(fù)制到 /dev 文件夾下
read -p "input a file:" filename
if [ -b $filename -o -c $filename ]
then
cp $filename /dev/
fi
2.編寫一個(gè)腳本。進(jìn)行簡(jiǎn)單的減法運(yùn)算。要求提示輸入變量
#!/bin/bash
read -p "input a number:" num1
read -p "input another number:" num2
let "num3=num1-num2"
echo $num3
3.把某個(gè)文件夾下的文件擴(kuò)展名改為bat,再以時(shí)間為文件名稱壓縮打包存放到某個(gè)文件夾。
#!/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.推斷一個(gè)數(shù)是不是完數(shù)。
打印出1-1000之間的完數(shù)。
完數(shù)就是約數(shù)的和等于自身2倍的數(shù)。(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.在某個(gè)目錄下查找含有指定字符串的文件
#!/bin/bash
for file in $(ls $2)
do
bname=$(grep -l $1 $2/$file)
basename $bname
done
6.加入一個(gè)新組為class1,然后加入屬于這個(gè)組的30個(gè)用戶,username的形式為stdxx,當(dāng)中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.設(shè)計(jì)一個(gè)Shell程序。在/userdata文件夾下建立50個(gè)文件夾。即user1~user50,并設(shè)置每一個(gè)文件夾的權(quán)限,其中其它用戶的權(quán)限為:讀。文件全部者的權(quán)限為:讀、寫、運(yùn)行;文件全部者所在組的權(quán)限為:讀、運(yùn)行。
#!/bin/bash
for ((i=1;i<=50;i++))
do
mkdir -p /usrdata/user$i
cd /usrdata
chmod 754 user$i
done
8. 寫一個(gè)腳本,利用循環(huán)計(jì)算10的階乘
#!/bin/sh
factorial=1
for a in `seq 1 10`
do
factorial=` expr $factorial * $a `
done
echo "10! = $factorial"
9.刪除當(dāng)前文件夾下大小為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
總結(jié)
以上是生活随笔為你收集整理的linux下shell编程课程设计,Linux下shell编程实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式OS入门笔记-以RTX为案例:三.
- 下一篇: Linux中压缩文件后生成,在 Linu