標籤: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