- 浏览: 166812 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
abc08010051:
简单明了,非常不错
java.lang.Thread.State类详解 -
tenderlitch:
jdk api文档里面的描述...
set闲聊 -
xmind:
图不错,收藏之。
图中Thread.wait()改用Objec ...
java.lang.Thread.State类详解 -
lahvey:
因为你的$VALUE值是“sed.txt”,并不是这个文件的内 ...
条件控制(test,expr……) -
tomotoboy:
thanks
tr用法
shift命令
向脚本传递参数时,有时需要将每一个参数偏移以处理选项,这就是 shift命令的功能。它每次将参数位置向左偏移一位,下面用一段简单脚本详述其功能。脚本使用 while循环反馈所有传递到脚本的参数。使用shift命令来处理传递到脚本的每一个参数:
使用shift处理文件大小写转换
getopts命令
getopts option_string variable
在上述例子中使用脚本:
while getopts ahfgv OPTION
可以看出while循环用于读取命令行,option_string为指定的5个选项(- a,- h,- f,- g,- v),脚本中variable为OPTION。注意这里并没有用连字符指定每一单个选项。
使用getopts指定变量取值
有时有必要在脚本中指定命令行选项取值。getopts为此提供了一种方式,即在option_string中将一个冒号放在选项后。例如:
getopts ahfvc: OPTION
上面一行脚本指出,选项 a、h、f、v可以不加实际值进行传递,而选项 c必须取值。使用选项取值时,必须使用变量 OPTARG保存该值。如果试图不取值传递此选项,会返回一个错误信息。错误信息提示并不明确,因此可以用自己的反馈信息屏蔽它,方法如下:
将冒号放在option_string开始部分。
访问取值方式
getopts的一种功能是运行后台脚本。这样可以使用户加入选项,指定不同的磁带设备以备份数据。使用getopts实现此任务的基本框架如下:
向脚本传递参数时,有时需要将每一个参数偏移以处理选项,这就是 shift命令的功能。它每次将参数位置向左偏移一位,下面用一段简单脚本详述其功能。脚本使用 while循环反馈所有传递到脚本的参数。使用shift命令来处理传递到脚本的每一个参数:
#!/bin/sh loop=0 while [ $# -ne 0 ] do echo $1 shift done
使用shift处理文件大小写转换
!#/bin/sh # tr_case # convert files to either upper or lower case FILES="" TRCASE="" EXT="" OPT=no # gets called when a conversion fails error_msg() { _FILENAME=$1 echo "`basename $0`: Error the conversion failed on $_FILENAME" } if [ $# -eq 0 ] then echo "For more info try `basename $0` --help" exit 1 fi while [ $# -gt 0 ] do case $1 in #set the variables based on what option was used -u)TRCASE=upper EXT=".UC" OPT=yes shift ;; -l)TRCASE=lower EXT=".LC" OPT=yes shift ;; -help) echo "convert a file(s) to uppercase from lowercase" echo "convert a file(s) from lowercase to uppercase" echo "will convert all characters according to the sepcified command option." echo "where option is" echo "-l Convert to lowercase" echo "-u Convert to uppercase" echo "The original file(s) is not touched. A new file(s)" echo "will be created with either a .UC or .LC extension" echo "usage: $0 -[l|u] file [file..]" exit 0 ;; -*) echo "usage: `basename $0` -[l|u] file [file..]" exit 1 ;; *) # collect the files to process if [ -f $1 ] then # add the filenames to a variable list FILES=$FILES" "$1 else echo "`basename $0` : Error cannot find the file $1" fi shift ;; esac done if [ "$OPT" = "no" ] then echo "`basename $0`: Error you need to specify an option. No action taken" echo "`basename` --help" exit 1 fi # now read in all the file(s) # use the variable LOOP, I just love the word LOOP for LOOP in $FILES do case $TRCASE in lower) cat $LOOP|tr "[a-z]" "[A-Z]" >$LOOP$EXT if [ $? != 0 ] then error_msg $LOOP else echo "Converted file called $LOOP$EXT" fi ;; upper) cat $LOOP|tr "[A-Z]" "[a-z]" > $LOOP$EXT if [ $? != 0 ] then error_msg $LOOP else echo "Converted file called $LOOP$EXT" fi ;; esac done
getopts命令
#!/bin/sh #getopts1 #set the vars ALL=false HELP=false FILE=false VERBROSE=false while getopts ahfgv OPTION do 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 "VERROSE is $VERROSE" ;; esac done
/home/l/g/tomotoboy/getopts >getopts1 -a ALL is true /home/l/g/tomotoboy/getopts >getopts1 -v VERROSE is /home/l/g/tomotoboy/getopts >getopts1 -v -a -h VERROSE is ALL is true HELP is truegetopts一般格式为:
getopts option_string variable
在上述例子中使用脚本:
while getopts ahfgv OPTION
可以看出while循环用于读取命令行,option_string为指定的5个选项(- a,- h,- f,- g,- v),脚本中variable为OPTION。注意这里并没有用连字符指定每一单个选项。
使用getopts指定变量取值
有时有必要在脚本中指定命令行选项取值。getopts为此提供了一种方式,即在option_string中将一个冒号放在选项后。例如:
getopts ahfvc: OPTION
上面一行脚本指出,选项 a、h、f、v可以不加实际值进行传递,而选项 c必须取值。使用选项取值时,必须使用变量 OPTARG保存该值。如果试图不取值传递此选项,会返回一个错误信息。错误信息提示并不明确,因此可以用自己的反馈信息屏蔽它,方法如下:
将冒号放在option_string开始部分。
while getopts :ahfgvc: OPTION
#!/bin/sh #getopts1 #set the vars ALL=false HELP=false FILE=false VERBROSE=false COPIES=0 #the value for the -c option is set to zero while getopts :ahfgvc: OPTION do 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 "VERROSE is $VERROSE" ;; c)COPIES=$OPTARG echo "COPIES is $COPIES" ;; \?) #usage stagement echo "`basename $0` -[a h f v] -[c value] file" >&2 ;; esac done
/home/l/g/tomotoboy/getopts >chmod 755 getopts2 /home/l/g/tomotoboy/getopts >getopts2 -c hello COPIES is hello /home/l/g/tomotoboy/getopts >getopts2 -h -c hello HELP is true COPIES is hello
访问取值方式
getopts的一种功能是运行后台脚本。这样可以使用户加入选项,指定不同的磁带设备以备份数据。使用getopts实现此任务的基本框架如下:
#!/bin/sh QUITE=n DEVICE=awa LOGFILE=/tmp/logbackup usage() { echo "Usage: `basename $0` -d [device] -l [logfile] -q" exit 1 } if [ $# = 0 ] then usage fi while getopts :qd:l: OPTION do case $OPTION in q) QUIET=y LOGFILE="/tmp/backup.log" ;; d) DEVICE=$OPTARG ;; l) LOGFILE=$OPTARG ;; \?)usage ;; esac done echo "you chose the following options...I can now process these" echo "Quite = $QUIET $DEVICE $LOGFILE"
发表评论
-
shell函数
2009-08-10 00:18 2014函数由两部分组成: 函数标题。 函数体。 标题是函数名。函 ... -
后台执行命令——守护进程创建
2009-08-09 19:05 1750当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏 ... -
控制流结构——until、while、break、continue
2009-08-08 18:56 2850until循环 条件中1为真, ... -
控制流结构——for
2009-08-08 14:12 1028for循环 for 变量名 in 列表 do 命 ... -
控制流结构——case
2009-08-06 12:53 1016case语句 case语句为多选择语句。可以用case语句匹配 ... -
控制流结构——if then else
2009-08-05 18:49 2629if then else语句 If 条件1 //如果条 ... -
条件控制(test,expr……)
2009-08-04 18:23 1321测试文件状态 test test一般有两种格式,即: test ... -
再谈引号……
2009-08-04 15:37 1000引号 /home/l/g/tomotoboy > ech ... -
shell变量及环境变量
2009-08-03 17:54 1553本地变量 显示变量 $GREAT_PICTURE =" ... -
登陆环境
2009-08-03 10:45 900首先看看/etc/passwd 它保存着用户名、加密后的密码等 ... -
Trap命令详解
2009-08-02 17:40 6497原文地址:http://koudai.36 ... -
ulimit命令详解
2009-08-02 17:30 2280原文地址:http://www.diybl.com/cours ... -
tr用法
2009-08-01 15:35 1853tr用来从标准输入中通 ... -
shell合并和分割
2009-07-31 12:43 2825• 实用的分类(sort)操作。 sort命令的一般格式为: ... -
shell输入输出
2009-07-31 12:38 806echo cat read 管道 '|' tee ... -
sed用法介绍
2009-07-30 15:21 2709输出第1行到第3行 -bash-3.00$ sed -n '1 ... -
awk使用
2009-07-29 16:29 1394awk 调用awk有三种方式调 ... -
shell中单引号和双引号的区别
2009-07-29 15:11 1115shell中单引号和双引号的区别 ''可以讲可执行命令文本化 ... -
grep用法详解
2009-07-29 13:45 2558grep grep一般格式为: grep [选项]基本正则表达 ... -
文本过滤
2009-07-28 00:02 7501.使用句点匹配单字符 句点“.”可以匹配任意单字符。例如,如 ...
相关推荐
### 向Python脚本传递参数知识点详解 在Python编程中,能够从命令行接收参数是一项非常实用的功能。本文将深入探讨如何使用`sys.argv`来接收命令行参数,并通过一个具体的示例——过滤文本文件中的特定关键字——来...
### 解决Unity不能调用shell脚本传递参数的问题 在Unity开发过程中,有时我们需要与操作系统进行交互,例如执行shell脚本来处理一些特定的任务。但在实际操作中,可能会遇到Unity无法正确调用shell脚本并传递参数的...
这篇文章将详细讲解如何向Shell或SQL脚本传递参数以及如何在脚本中接收这些参数。 首先,让我们来看向Shell脚本传递参数的方法。在命令行中,你可以像这样执行一个Shell脚本,并传递参数: ```bash sh a.sh aaa ...
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三个参数,并分别...
在`start.bat`中,可以设定条件判断,决定是否需要向被调用的子脚本传递参数。 **二、bat脚本的包管理** 1. **包管理**:在软件开发中,包管理器用于安装、升级和管理依赖项。在BAT脚本中,我们可以创建类似的机制...
本文将详细讲解如何向shell脚本传递参数、如何在脚本中嵌入命令,以及如何调试shell脚本,特别是通过`set`命令传递参数的方法。 一、向脚本传递参数 在shell脚本中,参数是以位置参数的形式传递的,从$0到$9表示前...
Java 调用 Python 脚本传递参数是指在 Java 应用程序中调用 Python 脚本,并将参数传递给 Python 脚本,以实现特定的功能。在本篇文章中,我们将详细介绍 Java 调用 Python 脚本传递参数的方法,并提供示例代码,...
**20向脚本传递参数.pdf** 学习如何通过命令行参数向Shell脚本传递数据。了解$0, $1, $2等特殊变量的含义,以及如何使用`shift`命令处理多个参数。 3. **21创建屏幕输出.pdf** 这部分讲解了如何使用`echo`, `printf...
第20章_向脚本传递参数; 第21章_创建屏幕输出; 第22章_创建屏幕输入; 第23章_调试脚本; 第24章_shell嵌入命令; 第25章_深入讨论; 第26章_shell工具; 第27章_几个脚本例子; 第28章_运行级别脚本;
为了解决这个问题,我们可以使用参数名来传递参数,这使得脚本更具可读性和可维护性。在Shell中,我们可以借助`getopts`命令来实现这一功能。 `getopts`是Bash shell内置的一个命令,用于处理命令行选项。它允许...
第20章 向脚本传递参数 224 第21章 创建屏幕输出 236 第22章 创建屏幕输入 252 第23章 调试脚本 274 第24章 shell嵌入命令 277 第25章 深入讨论 第26章 shell 工具 289 第27章 几个脚本例子 306 第28章 运行级别脚本...
本文将详细解释Java如何调用Shell脚本,包括如何编写Shell脚本和在Java中如何传递参数。 首先,Shell脚本可以被看作是一系列Linux命令的集合,用于自动化执行多个命令。类似于Windows环境中的批处理文件,Shell脚本...
020_向脚本传递参数_shift_getops.pdf 021_创建屏幕输出_tput.pdf 022_创建屏幕输入.pdf 023_测试脚本.pdf 024_shell嵌入命令.pdf 025_快速创建文件_自动菜单_ftp传输_连接至其他应用系统.pdf 026_创建以日期...
bat脚本参数传递,实现java -jar apktool.jar -version可以使用apktool -version代替
第20章 向脚本传递参数 224 第21章 创建屏幕输出 236 第22章 创建屏幕输入 252 第23章 调试脚本 274 第24章 shell嵌入命令 277 第五部分 高级shell编程技巧 第25章 深入讨论 第26章 shell 工具 289 第27章 几个脚本...
4. **输入/输出流处理**:为了获取Shell脚本的输出或者向脚本传递参数,需要正确地处理输入和输出流。Java的`InputStream`和`OutputStream`类可以用来读取和写入数据,从而与远程进程进行交互。 5. **错误处理**:...
20. 向脚本传递参数 21. 创建屏幕输出 22. 创建屏幕输入 23. 调试脚本 24. SHELL 嵌入命令 25. 深入讨论 26. SHELL 工具 27. 几个脚本例子 28. 运行级别脚本 29. CGI 脚本 30. 常用 SHELL 命令
本文将详细讲解三种不同的方法来传递和解析Shell脚本参数,并通过具体的代码示例进行说明。 首先,最基本的参数传递方式是直接通过位置参数($1, $2, ..., $n)来获取。在脚本中,这些变量代表了运行脚本时在命令行中...