bash 脚本参数案例总结
案例1.通过命令行参数给定两个数字,输出其中较大的数值;
方法1:如下
#!/bin/bash
#Name:
#Version:
#Type:
#Date:
#Author
#Email:
if [ $# -lt 2 ];then
echo "Two intergers."
fi
if [ $1 -ge $2 ];then
echo "Max is $1"
else
echo "Max is $2"
fi
方法2:如下
#!/bin/bash
#Name:
#Version:
#Type:
#Date:
#Author
#Email:
declare -i max
if [ $# -lt 2 ];then
echo "Two intergers."
fi
if [ $1 -ge $2 ];then
max=$1
else
max=$2
fi
echo "Max number:$max"
方法3:如下
#!/bin/bash
#Name:
#Version:
#Type:
#Date:
#Author
#Email:
declare -i max=$1
if [ $# -lt 2 ];then
echo "Two intergers."
fi
if [ $1 -le $2 ];then
max=$2
fi
echo "Max number:$max"
案例2:通过命令传递两个文本文件路径给脚本,计算其空白行数之和:
#!/bin/bash
#Name:
#Version:
#Type:
#Date:
#Author
#Email:
a=$(grep "^$" $1 | wc -l)
b=$(grep "^$" $2 | wc -l)
sum=$[$a+$b]
echo "the sum is: $sum"
案例3:通过参数传递一个用户名给脚本,此用户不存在时,则添加之:
方法1
#!/bin/bash
if [ $# -lt 1 ];then
echo "at least one username"
exit 2
fi
if ! grep "^$\>" /etc/passwd &> /dev/null;then
useradd $1
echo $1 | passwd --stdin $1 &> /dev/null
echo "add a user $1 finishd"
fi
方法2
#!/bin/bash
if [ $# -lt 1 ];then
echo "at least one username"
exit 2
fi
if grep "^$1\>" /etc/passwd &> /dev/null;then
echo "user $1 exists."
else useradd $1
echo $1 | passwd --stdin $1 &> /dev/null
echo "add a user $1 finishd"
fi
案例四写一个脚本,通过命令传递两个文本文件路径给脚本,计算其空白行数之和:
#!/bin/bash
a=$(grep "^$" $1 | wc -l)
b=$(grep "^$" $2 | wc -l)
sum=$[$a+$b]
echo "the sum is:$sum"
案例五写一个脚本计算/etc/passwd 文件中的第10个用户和第20个用户的ID号之和
#!/bin/bash
id1=$(cat /etc/passwd | head -10 | tail -1 | cut -d : -f3)
id2=$(cat /etc/passwd | head -20 | tail -1 | cut -d : -f3)
sum=$[$id1+$id2]
echo "the sum is:$sum"
案例六求用户user1和user2的ID之和 如果两个用户不在添加之
#!/bin/bash
id user1 &> /dev/null || useradd user1
id user2 &> /dev/null || useradd user2
user1ID=$(id -u user1)
user2ID=$(id -u user2)
sum=$[$user1ID+$user2ID]
echo "the sum ID is: $sum"
好了,今天就写到这里吧,明天继续。