shell脚本函数
函数编辑完后,需要调用函数才有意义
#!/bin/bash
hello() #定义函数
{
echo "hello world"
}hello #调用函数
案例:使用shell脚本来写一个函数,判断当前目录下存在多少个文件与目录
#!/bin/bash
dir()
{
dirnum=0 #目录的数量
filenum=0 #文件的数量
for file in $(ls ./)
doif [ -d $file ]thenlet dirnum=$dirnum + 1 #每检测到一个目录,变量dirnum值加1elif [ -f $file ]thenlet filenum=$filenum + 1 #每检测到一个文件,变量filenum值加1fi
done
echo "目录数量:"$dirnum
echo "文件数量:"$filenum
}dir
shell脚本的附带选项
举个例子
tail -10 access.log#tail是命令
#-10是选项
#access.log是附带选项
#tail会根据选项执行对应操作,根据附带选项来打开对应文件
通过Linux提供的系统变量“$1 $2 $3”等位置参数,根据脚本“*.sh”后面的选项位置,来决定接受哪一个选项
vi t.sh
#!/bin/bash
echo $1 $2 $3
echo $0
将t.sh脚本执行
# ./t.sh a b c
输出结果为
a b c
可以看出
$1是接收脚本后面第一个选项的值
$2是接收脚本后面第二个选项的值
$3是接收脚本后面第三个选项的值
如果还有$4,$5,$6等也是一次类推
而$0则是脚本本身
将shell脚本制成指令
在家目录中有一个隐藏文件‘.bashrc’用来设置别名,使用vi/vim编辑器进入,在alias后面添加一行
alias 要制作的指令名称='绝对路径'
文件配置完成后,需要切换一下用户,再切换回来,配置文件才能生效
案例:
自定义指定‘user’,并且该指定可以执行如下功能
user -add 用户名
在操作系统中添加一个用户
user -del 用户名
删除该用户
把上述要求制成指令
# vi t.sh
#!/bin/bash
if [ $1 = -add ]thenuseradd $2
elif [ $1 = -del ]thenuserdel $2
fi
编辑配置文件,给t.sh文件设置别名
# vi ~/.bashrc
# alias user='/root/t.sh'
切换用户,使配置文件生效;可以在/home目录查看是否成功
# su test
# su root
执行看看
# user -add lisa