linux学习之shell脚本 ------- 脚本参数传递
来源:互联网 发布:sql安全性 编辑:程序博客网 时间:2024/05/22 17:27
[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020]
今天再来看一下如何向shell脚本传递参数,需要掌握两个命令,一个是 shift命令,另一个是getopts。
脚本参数传递
shift命令
用法:
shift n 每次将参数位置向左偏移n位
假如我们要实现统计多个文件的总行数,就可以用到这个shift命令了,如下:
opt2.sh
#!/bin/bash#op2 static files total lines;staticlines(){ echo "static:`basename $0` filenames" exit}totalline=0if [ $# -lt 2 ]then staticlinesfiwhile [ $# -ne 0 ]do line=`cat $1 | wc -l` echo "$1:${line}" totalline=$[ $totalline+$line ] shiftdoneecho "-------------------------------------"echo "totalline:${totalline}"给予可执行权限,执行:
jesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ chmod a+rx opt2.sh jesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./opt2.sh static:opt2.sh filenamesjesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./opt2.sh lsout.txtstatic:opt2.sh filenamesjesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./opt2.sh lsout.txt name.txt lsout.txt:18name.txt:4-------------------------------------totalline:22jesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./opt2.sh lsout.txt name.txt while_test1.sh lsout.txt:18name.txt:4while_test1.sh:6-------------------------------------totalline:28通过shift 命令,我们可以很容易地实现统计log等信息。
getopts命令
该命令可以获得多个命令行参数。
还是一个脚本来分析getopts的用法
optsget.sh
#!/bin/bash#optsgetALL=falseHELP=falseFILE=falseVERBOSE=falsewhile getopts ahfvc: OPTIONdo case $OPTION in a) ALL=true echo "ALL is $ALL" ;; h) HELP=true echo "HELP is $HELP" ;; f) FILE=true echo "FILE is $FILE" ;; v) VERBOSE=true echo "VERBOSE is $VERBOSE" ;; c) c=$OPTARG echo "c valuse is $c" ;; \?) echo "`basename $0` -[a h f v] -[c value]" ;; esacdone给予可执行权限,执行结果如下:
jesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./optsget.sh -aALL is truejesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./optsget.sh -a -fALL is trueFILE is truejesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./optsget.sh -a -f -hALL is trueFILE is trueHELP is truejesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./optsget.sh -a -f -h -vALL is trueFILE is trueHELP is trueVERBOSE is truejesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./optsget.sh -a -f -cALL is trueFILE is true./optsget.sh: 选项需要一个参数 -- coptsget.sh -[a h f v] -[c value]jesson@jesson-K43SV:~/develop/worksapce/shell_workspace$ ./optsget.sh -a -f -c jessonALL is trueFILE is truec valuse is jesson不难看出,可以通过getopts命令取得多个参数,而且还可以为每个参数指定值,在需要指定值的参数后加:即可。
0 0
- linux学习之shell脚本 ------- 脚本参数传递
- [Linux]Linux Shell脚本参数传递
- shell脚本---传递参数
- shell 脚本参数传递
- Shell编程之脚本参数传递笔记
- shell脚本之传递参数(三)
- Shell之传递脚本参数与数组
- Linux学习之shell脚本
- linux之shell脚本学习
- linux -- shell脚本调用其他脚本,向shell脚本传递参数
- shell脚本命令参数传递
- shell脚本 函数传递参数
- Shell脚本的参数传递
- shell 脚本之参数
- linux shell 脚本之【1】参数
- linux学习之shell脚本 ------- shell函数
- Linux/Unix shell 参数传递到SQL脚本
- linux shell编程指南第二十章------向脚本传递参数
- quick-cocos2d-x 场景切换时node事件执行顺序
- 小笔记
- 关于jsp语法的小tip
- 2015-2-1冬令营日志
- 冬令营第一周周报——张佳莉
- linux学习之shell脚本 ------- 脚本参数传递
- 面向对象
- HDU 3062 Party(2-sat 模板题 tarjan )
- day04-HTTP协议入门
- 2015-2-1-工作日志-刘婉
- ABAP常用函数第一篇
- 八、走向三维
- sed 命令简介
- netfilter(2)-iptables