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 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数.下面的实例 ...
随机推荐
- uva11178 Morley’s Theorem(求三角形的角三分线围成三角形的点)
Morley’s Theorem Input: Standard Input Output: Standard Output Morley’s theorem states that that the ...
- 如何安装系统认证签名过的APK
如果你的App因为权限原因需要设置 android:sharedUserId="android.uid.system" 那么IDE编译出的包通常是无法直接安装的,查看控制台会发现报 ...
- 虚拟rethat联网问题
近日在vmware虚拟了一台rethat的linux,但是使用桥连也上不了网! 宿主机是win7,由于在公司,是采用固定ip上网的,通过上网查资料,终于可以连接网络了: 步骤如下: 第一:修改vi / ...
- javascript (string 部分)
<html> <body> <script type="text/javascript"> var str="ab:cd:ef:gh& ...
- iOS 8 强制横屏
最近用到视频播放功能:(Vitamio, 注:在Build Setting 里面的 Other Link Flag 添加-all_load) iOS 8的屏幕旋转比较坑, 使用以下代码可以强制旋转 - ...
- datetime.datetime.today()生成时间转换成unixtime
首先要将时间中秒后面的.及其以后的部分去掉,否则时间转换函数 currenttime=str((datetime.datetime.today())).split('.',2)[0] str((dat ...
- USACO Cow Pedigrees 【Dp】
一道经典Dp. 定义dp[i][j] 表示由i个节点,j 层高度的累计方法数 状态转移方程为: 用i个点组成深度最多为j的二叉树的方法树等于组成左子树的方法数 乘于组成右子树的方法数再累计. & ...
- grid.Column INT 所对应的文本
grid.Column("RoleId", "角色名称", (p) => { var role = string.Empty; if (p.RoleId ...
- jQuery带有定时器的tab栏切换
现在网上很多类似选项卡的切换,我们成为tab栏切换,比如下图: 新浪的tab栏切换 淘宝的tab栏切换 其中,新浪的tab栏鼠标放上去,可以快速的来回切换,但是如果采取ajax异步传输,不停去加载服务 ...
- php三元运算
$a = 2; $a == 1 ? $test="企业" : ($a==2 ? $test="地区" : $test="其他地方"); ec ...