#! /bin/bash
if [ $# -lt 1 ];then
echo "send"
exit 1
fi
if grep "^$1\>" /etc/passwd &> /dev/null;then
echo "user $1 exits"
else
useradd $1
echo $1 |passwd --stdin $1 &> /dev/null
echo "user $1"
fi
#!/bin/bash
3.#通过参数传递一个用户给脚本,此用户存在,则删除用户以及家目录和邮件目录
if [ $# -lt 1 ];then
echo "send agruments"
exit 1
fi
if id -u $1 &> /dev/null ;then
userdel -r $1
echo "user $1 is deleted"
else
echo "user $1 does not exists"
fi
4.通过命令参数给一个用户,判定其用户id是奇数还是偶数
1 if [ $# -lt 1 ];then
2 echo "put into number "
3 exit 1
4 fi
5 if id -u $1 &> /dev/null ;then #查找id并判断 再将数据丢进null中
6 idN=$(id -u $1) #得到id值
7 let s=$idN%2 #得到取余之后的值
8 if [ $s==0 ];then #判断取余之后的值是否为0
9 echo "$1 is 偶数$idN"
10 else
11 echo "$1 is 奇数$idN"
12 fi
13 else # 特别注意这一项 如果不是 就会输出 此用户不存在
14 echo "$1 is not exits"
15 fi
5.通过命令行参数给定两个文件名,如果文件不存在,如果都存在时返回两个文件的行数之和
1 #!/bin/bash
2 if [ $# -lt 2 ];then
3 echo "please input two"
4 exit 1
5 fi
6 if [ $1 -a $2 ];then
7 add=$(grep ".*" $1|wc -l)
8 bdd=$(grep ".*" $2|wc -l) # ".* "是匹配任意单个字符
9 cdd=$add+$bdd #了解let什么情况使用
10 echo "sum is $cdd"
11 else
12 echo "wenijan is not exit"
13 fi
14
6.通过脚本参数传递一个文本路径给脚本,判断此文件的类型
1 #!/bin/bash
2 if [ $# -lt 1 ];then
3 echo "input a arguement"
4 exit 1
5 fi
6 if ! [ -e $1 ];then
7 echo "no such directory or file "
8 exit 1
9 fi
10
11 if [ -f $1 ];then
12 echo "commen file"
13 elif [ -b $1 ];then
14 echo "block file"
15 elif [ -S $1 ];then
16 echo "socket file"
17 elif [ -d $1 ];then
18 echo "directory"
19 else
20 echo "unkonw"
21 fi
(第六题 使用到了 if多分支语句格式)
格式如下:
if [条件1];then
条件为真执行这里的代码
elif [条件2];then
条件为真执行这里的代码
elif [条件2];then
。
。
。
else
如果条件都不满足时 执行这里的代码
fi
注意:多个分支只会执行一个,执行首先为真的分支
7.(1)传递一个参数给脚本,此参数为用户名(2)根据其ID号来判断用户类型:0;管理员,1-499系统用户:500+为登入用户,输出用户是哪种类型的用户1 #!/bin/bash
2 if [ $# -lt 1 ];then
3 echo "input a arguement"
4 exit 1
5 fi
6 if id -u $1 &> /dev/null;then
7 user=$(id -u $1)
8
9 if [ $user -eq 0 ];then
10 echo " user is root "
11 elif [ $user -gt 1 -a $user -lt 499 ];then
12 echo " user is system user"lse
13 elif [ $user -gt 500 ];then
14 echo "user is login user"
15 fi
16 else
17 echo "no such user "
18 fi
19
注意: 无论做什么题目都要细心 特别一些平常做过的一些题目 特别循环 一定要了解其框架 才能将其完整的书写出来
——————————————————————————————————————————
1 #计算当前用户的id 之和
2 #!/bin/bash
3 declare -i count=0
4 add=$( wc -l /etc/passwd |cut -d" " -f1 )
5 for i in $( seq 1 $add );do
6 username=$( cut -d: -f1 /etc/passwd|sed -n "$i"p )
7 zonghe=$[ $count + $(id -u $username ) ]
8 done
9 echo "$zonghe"
———————————————————————————————————————————————
(以下两题都是用while和until 循环来计算100以内分得奇数 和偶数的总和 )
1 #!/bin/bash
2 declare -i jishu=0
3 declare -i oushu=0
4 declare -i i=1 #做之前要对 一些数值要声明
5 while [ $i -le 100 ];do
6 yushu=$[ $i%2 ]
7 if [ $yushu -eq 0 ];then
8 oushu=$[ $i + $oushu ]
9 else
10 jishu=$[ $jishu + $i ]
11 fi
12 let i++ #此项不知到忘记多少次 牢记
13 done
14 echo "jishu is $jishu"
15 echo "oushu is $oushu " # echo的两项 一定要记住放在什么位置
—————————————
#!/bin/bash
2 declare -i jishu=0
3 declare -i oushu=0
4 declare -i i=1
5 until [ $i -gt 100 ];do #注意此题判断的条件 until和while 判断方式不一样
6 yushu=$[ $i%2 ]
7 if [ $yushu -eq 0 ];then
8 oushu=$[ $oushu + $i ]
9 else
10 jishu=$[ $jishu + $i ]
11 fi
12 let i++
13 done
14 echo "oushu is $oushu"
15 echo "jishu is $jishu"
———————————————————————————————————————————————
1 #创建9个用户 密码同用户名 如果用户存在的话就删除 用户分别为user101--user109
2 #!/bin /bash
3 # 使用for循环
4 for i in `seq 1 9`;do
5 if id user10"$i" &> /dev/null;then #注意此项的 id
6 userdel -r user10"$i" # 还有 不光只有这一项 $i 要有“ ”
7 else
8 useradd user10"$i"
9 echo "user10$i "|passwd --stdin user10"$i" # 直接设置秘密
10 echo " create user is user10$i"
11 fi
12 done
-------------------------------------------------------------------------------------
1 #!/bin/bash
2 # 9x9乘法表
3 for ((i=1;i<10;i++));do
4 for ((j=1;j<=$i;j++));do
5 echo -n " $j X $i=$[ $j*$i ] "
6 done
7 echo
8 done
#!/bin/bash
2 #9x9乘法表的逆序排法
3 declare -i i=9
4 while [ $i -ge 1 ];do
5 for j in `seq 1 $i |sort -n -r`;do #很具有函数的思想 同时也利用到了 一些
基础知识 关键还是要掌握函数的思想 只有掌握函数的思想才能融会贯通
6 echo -n " $i x $j=$[ $i*$j ] "
7 done
8 echo
9 let i--
10 done
~
------------------------------------------------------------------------------------
1 #!/bin/bash
2 # 使用continue和for循环 来计算100以内的偶数和
3 declare -i oushuhe=0
4 for i in {1..100};do
5 yushu=$[ $i%2 ] #细心
6 if [ $yushu -eq 1 ];then
7 continue
8 fi
9 oushu=$[$oushu + $i ]
10 done
11 echo " oushu is $oushu"
---------------------------------------------------------------------------------
1 #!/bin/bash
2 #利用while和continue 来计算100以内的偶数和
3 declare -i i=0
4 declare -i oushu=0
5 while [ $i -lt 100 ];do
6 let i++
7 if [ $[ $i%2 ] -eq 1 ];then
8 continue
9 fi
10 oushu=$[ $oushu + $i ]
11 done
12 echo "oushu is $oushu "
-------------------------------------------------------------------
1 #!/bin/bash
2 # 求100以内的奇数和 利用 continue 语句
3 declare -i jishu=0
4 declare -i i=1
5 while [ $i -lt 100 ];do
6 let i++
7 if [ $[$i%2] -eq 0 ];then
8 continue
9 fi
10 jishu=$[ $jishu + $i ]
11 done
12 echo "jishu is $jishu"
-----------------------------------------------------------------------
if [ $# -lt 1 ];then
echo "send"
exit 1
fi
if grep "^$1\>" /etc/passwd &> /dev/null;then
echo "user $1 exits"
else
useradd $1
echo $1 |passwd --stdin $1 &> /dev/null
echo "user $1"
fi
#!/bin/bash
3.#通过参数传递一个用户给脚本,此用户存在,则删除用户以及家目录和邮件目录
if [ $# -lt 1 ];then
echo "send agruments"
exit 1
fi
if id -u $1 &> /dev/null ;then
userdel -r $1
echo "user $1 is deleted"
else
echo "user $1 does not exists"
fi
4.通过命令参数给一个用户,判定其用户id是奇数还是偶数
1 if [ $# -lt 1 ];then
2 echo "put into number "
3 exit 1
4 fi
5 if id -u $1 &> /dev/null ;then #查找id并判断 再将数据丢进null中
6 idN=$(id -u $1) #得到id值
7 let s=$idN%2 #得到取余之后的值
8 if [ $s==0 ];then #判断取余之后的值是否为0
9 echo "$1 is 偶数$idN"
10 else
11 echo "$1 is 奇数$idN"
12 fi
13 else # 特别注意这一项 如果不是 就会输出 此用户不存在
14 echo "$1 is not exits"
15 fi
5.通过命令行参数给定两个文件名,如果文件不存在,如果都存在时返回两个文件的行数之和
1 #!/bin/bash
2 if [ $# -lt 2 ];then
3 echo "please input two"
4 exit 1
5 fi
6 if [ $1 -a $2 ];then
7 add=$(grep ".*" $1|wc -l)
8 bdd=$(grep ".*" $2|wc -l) # ".* "是匹配任意单个字符
9 cdd=$add+$bdd #了解let什么情况使用
10 echo "sum is $cdd"
11 else
12 echo "wenijan is not exit"
13 fi
14
6.通过脚本参数传递一个文本路径给脚本,判断此文件的类型
1 #!/bin/bash
2 if [ $# -lt 1 ];then
3 echo "input a arguement"
4 exit 1
5 fi
6 if ! [ -e $1 ];then
7 echo "no such directory or file "
8 exit 1
9 fi
10
11 if [ -f $1 ];then
12 echo "commen file"
13 elif [ -b $1 ];then
14 echo "block file"
15 elif [ -S $1 ];then
16 echo "socket file"
17 elif [ -d $1 ];then
18 echo "directory"
19 else
20 echo "unkonw"
21 fi
(第六题 使用到了 if多分支语句格式)
格式如下:
if [条件1];then
条件为真执行这里的代码
elif [条件2];then
条件为真执行这里的代码
elif [条件2];then
。
。
。
else
如果条件都不满足时 执行这里的代码
fi
注意:多个分支只会执行一个,执行首先为真的分支
7.(1)传递一个参数给脚本,此参数为用户名(2)根据其ID号来判断用户类型:0;管理员,1-499系统用户:500+为登入用户,输出用户是哪种类型的用户1 #!/bin/bash
2 if [ $# -lt 1 ];then
3 echo "input a arguement"
4 exit 1
5 fi
6 if id -u $1 &> /dev/null;then
7 user=$(id -u $1)
8
9 if [ $user -eq 0 ];then
10 echo " user is root "
11 elif [ $user -gt 1 -a $user -lt 499 ];then
12 echo " user is system user"lse
13 elif [ $user -gt 500 ];then
14 echo "user is login user"
15 fi
16 else
17 echo "no such user "
18 fi
19
注意: 无论做什么题目都要细心 特别一些平常做过的一些题目 特别循环 一定要了解其框架 才能将其完整的书写出来
——————————————————————————————————————————
1 #计算当前用户的id 之和
2 #!/bin/bash
3 declare -i count=0
4 add=$( wc -l /etc/passwd |cut -d" " -f1 )
5 for i in $( seq 1 $add );do
6 username=$( cut -d: -f1 /etc/passwd|sed -n "$i"p )
7 zonghe=$[ $count + $(id -u $username ) ]
8 done
9 echo "$zonghe"
———————————————————————————————————————————————
(以下两题都是用while和until 循环来计算100以内分得奇数 和偶数的总和 )
1 #!/bin/bash
2 declare -i jishu=0
3 declare -i oushu=0
4 declare -i i=1 #做之前要对 一些数值要声明
5 while [ $i -le 100 ];do
6 yushu=$[ $i%2 ]
7 if [ $yushu -eq 0 ];then
8 oushu=$[ $i + $oushu ]
9 else
10 jishu=$[ $jishu + $i ]
11 fi
12 let i++ #此项不知到忘记多少次 牢记
13 done
14 echo "jishu is $jishu"
15 echo "oushu is $oushu " # echo的两项 一定要记住放在什么位置
—————————————
#!/bin/bash
2 declare -i jishu=0
3 declare -i oushu=0
4 declare -i i=1
5 until [ $i -gt 100 ];do #注意此题判断的条件 until和while 判断方式不一样
6 yushu=$[ $i%2 ]
7 if [ $yushu -eq 0 ];then
8 oushu=$[ $oushu + $i ]
9 else
10 jishu=$[ $jishu + $i ]
11 fi
12 let i++
13 done
14 echo "oushu is $oushu"
15 echo "jishu is $jishu"
———————————————————————————————————————————————
1 #创建9个用户 密码同用户名 如果用户存在的话就删除 用户分别为user101--user109
2 #!/bin /bash
3 # 使用for循环
4 for i in `seq 1 9`;do
5 if id user10"$i" &> /dev/null;then #注意此项的 id
6 userdel -r user10"$i" # 还有 不光只有这一项 $i 要有“ ”
7 else
8 useradd user10"$i"
9 echo "user10$i "|passwd --stdin user10"$i" # 直接设置秘密
10 echo " create user is user10$i"
11 fi
12 done
-------------------------------------------------------------------------------------
1 #!/bin/bash
2 # 9x9乘法表
3 for ((i=1;i<10;i++));do
4 for ((j=1;j<=$i;j++));do
5 echo -n " $j X $i=$[ $j*$i ] "
6 done
7 echo
8 done
#!/bin/bash
2 #9x9乘法表的逆序排法
3 declare -i i=9
4 while [ $i -ge 1 ];do
5 for j in `seq 1 $i |sort -n -r`;do #很具有函数的思想 同时也利用到了 一些
基础知识 关键还是要掌握函数的思想 只有掌握函数的思想才能融会贯通
6 echo -n " $i x $j=$[ $i*$j ] "
7 done
8 echo
9 let i--
10 done
~
------------------------------------------------------------------------------------
1 #!/bin/bash
2 # 使用continue和for循环 来计算100以内的偶数和
3 declare -i oushuhe=0
4 for i in {1..100};do
5 yushu=$[ $i%2 ] #细心
6 if [ $yushu -eq 1 ];then
7 continue
8 fi
9 oushu=$[$oushu + $i ]
10 done
11 echo " oushu is $oushu"
---------------------------------------------------------------------------------
1 #!/bin/bash
2 #利用while和continue 来计算100以内的偶数和
3 declare -i i=0
4 declare -i oushu=0
5 while [ $i -lt 100 ];do
6 let i++
7 if [ $[ $i%2 ] -eq 1 ];then
8 continue
9 fi
10 oushu=$[ $oushu + $i ]
11 done
12 echo "oushu is $oushu "
-------------------------------------------------------------------
1 #!/bin/bash
2 # 求100以内的奇数和 利用 continue 语句
3 declare -i jishu=0
4 declare -i i=1
5 while [ $i -lt 100 ];do
6 let i++
7 if [ $[$i%2] -eq 0 ];then
8 continue
9 fi
10 jishu=$[ $jishu + $i ]
11 done
12 echo "jishu is $jishu"
-----------------------------------------------------------------------