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"


好了,今天就写到这里吧,明天继续。