shell编程中的输入参数处理
来源:互联网 发布:linux 改文件夹名字 编辑:程序博客网 时间:2024/06/15 05:39
shell编程中的输入参数处理
首先来了解一些shell脚本中的特殊参数:
$IFS 输入域分隔符。当shell读取输入时,它给出用来分隔单词的一组字符,它们通常是空格、制表符和换行符。
$# 传递到脚本的参数个数
$* 在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分隔开。如果IFS为空,所有参数将会挤在一块如一个字符串的形式。如果IFS被修改了,那么$*将命令行分隔为参数的方式就将随之改变。
$$ 脚本运行的当前进程I D号
$! 后台运行的最后一个进程的进程I D号
$@ 是$*的一种变体,它不使用IFS环境变量,所以即使IFS为空,参数也不会挤在一起。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
简单的写一个脚本来查看一下几个参数的表现:
#! /bin/bash
echo \$\#: $#
echo \$\*: $*
echo \$\$: $$
echo \$\!: $!
echo \$\@: $@
echo \$\?: $?
echo \$\#: $#
echo \$\*: $*
echo \$\$: $$
echo \$\!: $!
echo \$\@: $@
echo \$\?: $?
然后执行以下这个脚本,执行时传入几个参数:
[root@LovelyLP shell]# ./arg.sh a b c d e
$#: 5
$*: a b c d e
$$: 1591
$!:
$@: a b c d e
$?: 0
$#: 5
$*: a b c d e
$$: 1591
$!:
$@: a b c d e
$?: 0
通过输出结果,可以对这些特殊参数有一个直观的认识。
在此基础上,我们可以编写一些shell脚本或function来简化平时的工作
例如有这样一条命令:
rhc app create -a php1 -t php-5.3 -s -n --no-dns -p password
其中-a后面的参数可能会改变,-s,-n --no-dns选项可能会根据需要决定是否使用,我们可以优化一下命令,编写到.bashrc中,以后通过调用function的方式来使用,提高工作效率:
function cphp_app()
{
cmd="rhc app create -p $OPENSHIFT_PASSWD -t php-5.3 -a" # User's command string
if [ $# -eq 0 ]; then
cmd=${cmd}" php1" # specify a default name if no params are provided
else
for i in $@
do
if [ ${i} == "-n" ]; then
cmd=${cmd}" -n --no-dns" # make -n short for -n --no -dns
else
cmd=${cmd}" ${i}"
fi
done
fi
# execute command
eval `echo ${cmd}`
}
{
cmd="rhc app create -p $OPENSHIFT_PASSWD -t php-5.3 -a" # User's command string
if [ $# -eq 0 ]; then
cmd=${cmd}" php1" # specify a default name if no params are provided
else
for i in $@
do
if [ ${i} == "-n" ]; then
cmd=${cmd}" -n --no-dns" # make -n short for -n --no -dns
else
cmd=${cmd}" ${i}"
fi
done
fi
# execute command
eval `echo ${cmd}`
}
把这样的程序写在~/.bashrc中,source一下后,就能够方便的调用了
总结起来,之所以编写shell脚本,无非是为了提高工作效率,使用perl,ruby等编程语言对于处理这类问题更加出色。
- shell编程中的输入参数处理
- 使用getopts处理shell中的输入参数
- 使用getopts处理shell中的输入参数
- 使用getopts处理shell中的输入参数
- shell中的命令行参数处理
- Shell 编程中的参数形式
- Shell 编程学习笔记:脚本输入参数
- Bash shell编程<六>:处理用户输入
- shell 脚本中关于用户输入参数的处理
- shell脚本中用getopts处理用户输入选项和参数
- shell 脚本编程学习(二) 变量,用户输入,参数
- 交互式输入shell参数
- 【shell学习】输入参数
- Linux学习-shell脚本编程基础之处理用户输入
- Linux命令行与shell编程笔记-13处理用户输入
- 【shell】处理用户输入
- shell 参数处理
- shell 脚本 输入参数 学习
- js实现删除一行
- linux网络 收包过程
- Io 异常: The Network Adapter could not establish the connection
- SQL语句like子句中的转义符
- eclipse环境变量设置
- shell编程中的输入参数处理
- windows系统上面如何后台执行程序
- winXP下Virtualbox虚拟机Ubuntu共享文件夹设置
- Java核心技术读书笔记
- CLOSE_WAIT1 CLOSE_WAIT状态的生成原因[转]
- 百度定位SDK返回166错误
- 《Windows via C/C++》学习笔记 —— “线程同步”之“检测死锁”
- mysql版本详解
- JSP语法