linux脚本:shell, 判断输入参数的个数(命令行)
if [ $# != 3 ] ; then
echo "USAGE: $0 from to"
echo " e.g.: $0 ~/oucaijun/from ~/oucaijun/to"
exit 1;
fi
————————————————————————
$#代表了命令行的参数数量
位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字
-ne 不等于
————————————————————————
UNIX Shell -> 比较:
整数比较
- -eq
-
等于
if [ "$a" -eq "$b" ]
- -ne
-
不等于
if [ "$a" -ne "$b" ]
- -gt
-
大于
if [ "$a" -gt "$b" ]
- -ge
-
大于等于
if [ "$a" -ge "$b" ]
- -lt
-
小于
if [ "$a" -lt "$b" ]
- -le
-
小于等于
if [ "$a" -le "$b" ]
- <
-
小于(在双括号中使用)
(("$a" < "$b"))
- <=
-
小于等于(在双括号中使用)
(("$a" <= "$b"))
- >
-
大于(在双括号中使用)
(("$a" > "$b"))
- >=
-
大于等于(在双括号中使用)
(("$a" >= "$b"))
字符串比较
=
-
等于
if [ "$a" = "$b" ]
- ==
-
等于
if [ "$a" == "$b" ]
与=等价.
==比较操作符在双中括号对和单中括号对中的行为是不同的.
1 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么结果将为真
2 [[ $a == "z*" ]] # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真.
3
4 [ $a == z* ] # 文件扩展匹配(file globbing)和单词分割有效.
5 [ "$a" == "z*" ] # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真.
6
7 # 感谢, Stephane Chazelas - !=
-
不等号
if [ "$a" != "$b" ]
这个操作符将在[[ ... ]]结构中使用模式匹配.
- <
-
小于, 按照ASCII字符进行排序
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意"<"使用在[ ]结构中的时候需要被转义.
- >
-
大于, 按照ASCII字符进行排序
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注意">"使用在[ ]结构中的时候需要被转义.
- -z
-
字符串为"null", 意思就是字符串长度为零
- -n
-
字符串不为"null".
当-n使用在中括号中进行条件测试的时候, 必须要把字符串用双引号引用起来,这才是安全的行为. 如果采用了未引用的字符串来使用! -z, 甚至是在条件测试中括号中只使用未引用的字符串的话, 一般也是可以工作的, 然而, 这是一种不安全的习惯. 习惯于使用引用的测试字符串才是正路.
#!/bin/sh
a=
#if [ "$a" -eq "$1" ]; then # ok
if [ "$1" -eq "$a" ] # ok
#if[ "$1" -eq "$a" ] # not ok
then
echo "11 var1 == a"
fi if [ "$1" == "$a" ]; then # ok
#if [ $1 == $a ]; then # can do but not a good style
#if [ $1==$a ]; then # not ok
echo "22 var1 == a"
fi
参考: 1. Shell脚本中判断输入参数个数的方法 http://www.jb51.net/article/56549.htm
linux脚本:shell, 判断输入参数的个数(命令行)的更多相关文章
- Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载
Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数 ...
- Linux脚本shell字符串处理
Linux脚本shell字符串处理,基本都有了,看着搜吧 TLDP教堂 shell中if条件字符串.数字比对,[[ ]]和[ ]区别 Linux 之 shell 比较运算符 Linux Shell编程 ...
- linux bash shell编程之参数变量和流程控制。
参数变量:用来向脚本中传递参数 我们在执行脚本的时候可以在其后面加入一些参数,通常来说这些参数与脚本中变量为对应关系. start.sh argu1 argu2 引用方式: $1,,2,……${10} ...
- linux脚本Shell之awk详解
一.基本介绍1.awk: awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的.awk认为文本文件都是结构化的,它将每一个输入行定义为一个记录,行中的每个字符串定义为一个 ...
- Linux在shell中输入历史命令
在Linux的shell中,经常输入的命令有很多雷同,甚至是一样的, 如果是长命令,再次敲一遍效率真的是很低, 不过可以通过Ctl+r, 查找history中以前输入的命令,很是好用. 按Ctrl+ ...
- Shell 参数(2) --解析命令行参数工具:getopts/getopt
getopt 与 getopts 都是 Bash 中用来获取与分析命令行参数的工具,常用在 Shell 脚本中被用来分析脚本参数. 两者的比较 (1)getopts 是 Shell 内建命令,geto ...
- 25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?
本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...
- Chrome浏览器启动参数大全(命令行参数)
前言 在开发Web项目当中,浏览器必不可少,而浏览器的启动参数可以帮我们实现很多功能. 常用参数 常用参数请参考下表. 序号 参数 说明 1 --allow-outdated-plugins 不停用过 ...
- C语言笔记 12_可变参数&内存管理&命令行参数
可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数.C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数.下面的实例 ...
随机推荐
- 小程序员在android移动应用上的赚钱经历
先说说我自己吧,二线城市(以外包为主)的小程序员,工作多年了,月收入5-6K.主要从事asp.net web网站开发,java,c++,php,ruby都懂一些,属于那种对问题不求甚解型,爱好电脑游戏 ...
- HNU13028Attacking rooks (二分匹配,一行变多行,一列变多列)
Attacking rooks Time Limit: 20000ms, Special Time Limit:50000ms, Memory Limit:65536KB Total submit u ...
- hdu1698 Just a Hook 线段树:成段替换,总区间求和
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 Problem ...
- STL之stack
一.stack(栈) 栈:LIFO 后进先出: 首先要指出的是,stack并非和STL的其他类模板是独立的容器,stack是自适应容器(容器适配器) stack<int, deque<in ...
- SpringMVC+Mybatis+Mysql实战项目学习--环境搭建
1.开发IDE:Spring Tool Suite(自带maven插件) 下载地址https://spring.io/tools/sts/all 在STS.ini配置信息中加下面一行 保证编码格式为u ...
- java中将list、map对象写入文件
链接地址:http://blog.sina.com.cn/s/blog_4a4f9fb50101p6jv.html 推荐:凤爪女瓜子男怪象该谁反思伦敦房价为什么持续暴涨 × wvqusrtg个 ...
- [置顶] PHP调用move_uploaded_file()提示 failed to open stream: Permission denied(Linxux环境,以Ubuntu12.04为例)
在使用PHP上传文件之后,我们有时候还需要移动到特定的文件夹,这时候就要调用move_uploaded_file()函数,可是会出现如下错误: Warning: move_uploaded_file( ...
- 使用jquery 1.7 及以后的版本 attr 问题
跟进jquery的代码进行检查,发现问题出在下面的代码中: if ( notxml ) { name = name.toLowerCase(); hooks = jQuery.attrHooks[ n ...
- 基于visual Studio2013解决C语言竞赛题之0418位数操作
题目 解决代码及点评 /************************************************************************/ /* 18. 给 ...
- JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开
Pre 解决思路 代码后记: 客户端app上的部分代码 调用: 服务器上: 客户端判断服务器是否还活着代码: PRE 在利用socket写通讯程序的时候,想检测服务器是否还活着. 从网上找了很多资料, ...