if [ $# != 1 ] ; then
echo "USAGE: $0 TABNAME"
echo " e.g.: $0 CDR_CALL_20040701"
exit 1;
fi
位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字
-ne 不等于
-----------------------
shell 编程中使用到得if语句内判断参数
–b 当file存在并且是块文件时返回真
-c 当file存在并且是字符文件时返回真
-d 当pathname存在并且是一个目录时返回真
-e 当pathname指定的文件或目录存在时返回真
-f 当file存在并且是正规文件时返回真
-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p 当file存在并且是命令管道时返回为真
-r 当由pathname指定的文件或目录存在并且可读时返回为真
-s 当file存在文件大小大于0时返回真
-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
UNIX Shell 里面比较字符写法:
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-le 小于等于
-ge 大于等于
-z 空串
= 两个字符相等
!= 两个字符不等
-n 非空串
-------------------------------------------------------------------------
更为详细的说明:
运算符 描述 示例
文件比较运算符
-e filename 如果 filename 存在,则为真 [ -e /var/log/syslog ]
-d filename 如果 filename 为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename 为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename 为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename 可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename 可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename 可执行,则为真 [ -L /usr/bin/grep ]
filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1 比 filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string 长度为零,则为真 [ -z $myvar ]
-n string 如果 string 长度非零,则为真 [ -n $myvar ]
string1 = string2 如果 string1 与 string2 相同,则为真 [ $myvar = one two three ]
string1 != string2 如果 string1 与 string2 不同,则为真 [ $myvar != one two three ]
算术比较运算符
num1 -eq num2 等于 [ 3 -eq $mynum ]
num1 -ne num2 不等于 [ 3 -ne $mynum ]
num1 -lt num2 小于 [ 3 -lt $mynum ]
num1 -le num2 小于或等于 [ 3 -le $mynum ]
num1 -gt num2 大于 [ 3 -gt $mynum ]
num1 -ge num2 大于或等于 [ 3 -ge $mynum ]
脚本示例:
#!/bin/bash
# This script prints a message about your weight if you give it your
# weight in kilos and hight in centimeters.
if [ ! $# == 2 ]; then
echo "Usage: $0 weight_in_kilos length_in_centimeters"
exit
fi
weight="$1"
height="$2"
idealweight=$[$height - 110]
if [ $weight -le $idealweight ] ; then
echo "You should eat a bit more fat."
else
echo "You should eat a bit more fruit."
fi
# weight.sh 70 150
You should eat a bit more fruit.
# weight.sh 70 150 33
Usage: ./weight.sh weight_in_kilos length_in_centimeters
位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字,
第一个参数代表$1,第二个参数代表$2,以此类推,参数数量的总数存在$#中,上面的例子显示了怎么改变脚本,如果参数少于或者多余2个来打印出一条消息。
执行,并查看情况。
# bash -x tijian.sh 60 170
+ weight=60
+ height=170
+ idealweight=60
+ '[' 60 -le 60 ']'
+ echo 'You should eat a bit more fat.'
You should eat a bit more fat.
其中-x用来检查脚本的执行情况。
- 浏览: 1253480 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (461)
- 心得体会 (166)
- Hibernate (9)
- Spring (12)
- Struts1 (3)
- Ajax (4)
- Java (54)
- 其他技术 (21)
- 数据库 (29)
- EXT (0)
- Struts2 (7)
- Xml (3)
- HTML (5)
- JavaScript (12)
- 面试相关 (3)
- BLOG (11)
- 计算机 (11)
- PMP (0)
- OGNL (1)
- LINUX (79)
- AIX (1)
- Ubuntu (14)
- Android (1)
- hadoop (3)
- LINUX debian (3)
- 心得体会 eclipse (2)
- JSTL (1)
- 心得体会 hadoop cdh3u5 (2)
- maven (5)
- Hive (1)
- 心得体会 工具使用 (3)
- spring data jpa Query By Example(QBE) (1)
- nginx (2)
- Apache (1)
- mysql (6)
- LINUX mysql (2)
- freemaker (1)
- 心得体会 FastDFS Nginx 断点续传 (1)
- LINUX FastDFS Nginx 断点续传 (1)
- 心得体会 Mybatis (2)
- 心得体会 mysql (4)
- php (1)
- logback 简介 (5)
- EL (1)
- Tomcat (2)
- win7 (1)
- LINUX maven (1)
- scrumworks (1)
- linux nginx (6)
- svn linux (1)
- mac (3)
- mac git (1)
- git (1)
- nexus (2)
- golang (1)
- LINUX Redis (1)
- mac oracle (1)
最新评论
-
a785975139:
有用
MySQL Error :SHOW PROFILES -
yijiulove:
弄了半天,参照你的方法解决了.特来感谢,知道可能是先加载,但是 ...
Spring和Mybatis整合时无法读取properties的处理方案 -
chenjinqi1987:
Missing com.sun.jdmk:jmxtools:jar:1.2.1 -
leifeng2:
请问怎么使用,运行之后d盘符没有生产音频文件呢?
java录音程序 -
sundful:
chenghong726 写道你好,我也遇到你这样的问题,按照 ...
Spring和Mybatis整合时无法读取properties的处理方案
发表评论
-
CentOS6.5系统更改yum源为163
2016-11-16 16:49 6941、备份系统源 # cd /etc/yum.repos.d ... -
shell脚本----if(数字条件,字符串条件,字符串为空)
2016-04-07 17:58 1458二元比较操作符,比较变量或者比较数字. 注意数字与字符串的 ... -
shell bash判断文件或文件夹是否存在
2016-03-25 09:08 2053#shell判断文件夹是否存在 #如果文件夹不存 ... -
Linux保持SSH连接时间设置
2015-12-02 09:33 1056连接SSH服务器刚刚离开一会就断开,不得不需要反复连接服务器 ... -
Centos安装Vsftpd
2015-11-03 19:10 887安装部分摘自开源中国,最后红色部分解决无法登陆(cannot ... -
Linux使用jstat命令查看jvm的GC情况
2015-09-09 17:20 2222命令格式 jstat命令命令格式: jstat [Op ... -
如何从CPAN安装Perl模块
2015-06-11 11:20 1158Perl有一个从外部导入Perl模块的机制,从外部导入到Pe ... -
ubuntu - 下更改语言环境
2015-05-05 14:56 9762.server 对于使用ubuntu server版的朋友 ... -
shell判断文件是否存在
2015-04-29 19:54 15541. shell判断文件,目录是否存在或者具有权限 2. #! ... -
crontab命令的使用方法
2015-04-29 19:15 673crontab命令常见于Unix和Linux的操作系统之中, ... -
关于nginx的启动和停止、平滑重启
2015-04-29 16:01 1792一、nginx的启动 /usr/local/nginx/s ... -
CentOS修改DNS地址方法
2015-04-24 17:02 797DNS是用于解析域名后端IP的服务器。Linux和Windo ... -
Ubuntu 修改locale
2015-02-07 12:30 807vim /etc/default/locLANG=" ... -
Ubuntu 12 ulimit 系统最大打开文件个数 设置
2015-02-07 12:28 994配置/etc/profile 最后一行加上 # u ... -
crontab ubuntu
2015-02-05 11:48 1031第一次使用crontab 时,会出现 no crontab ... -
tar打包排除某个目录
2015-02-05 11:47 1696tar zcvf fd.tar.gz * --exclu ... -
Ubuntu下安装nginx
2015-01-16 11:49 20101)、下载 sudo wget http://ngi ... -
五种方法实现Linux批量重命名文件
2014-11-17 18:35 2251Linux批量重命名文件会涉及到改变一个字母、改变一些相连 ... -
linux 解压war包
2014-10-14 08:28 922网上很多人说用jar包解 ... -
centos6.4-ssh-POSSIBLE BREAK-IN ATTEMPT
2014-09-13 14:34 1185[root@rd-1 yum.repos.d]# scp Ce ...
相关推荐
`$#`变量存储了命令行参数的个数,这对于检查用户输入的参数数量是否符合预期非常有用。比如,如果一个脚本需要三个参数,可以检查`$#`是否等于3。`$*`变量则包含了所有传递给程序的参数,适用于处理参数数量不固定...
SHELL程序由一系列命令组成,这些命令可以是系统内置的或者外部可执行文件。它们按照特定的顺序执行,可以读取、处理数据,并根据需要改变系统状态。 **四、SHELL基本知识** **4.1 特殊符号** SHELL中有很多特殊...
预定义变量是Shell内部已经设定好的特殊变量,如`$#`表示位置参数的个数,`$*`是所有位置参数的值,`$?`记录命令执行后的退出状态,`$$`是当前进程的PID,`$!`则保存了最后一个后台进程的PID。 Shell脚本中的控制...
- ARGC:表示命令行参数的个数。 - ARGV:表示命令行参数数组。 - ARGIND:表示当前被处理文件的ARGV标志符。 - NR:表示已经读出的记录数。 - FNR:表示当前文件的记录数。 - FS:表示输入字段分隔符,默认为空格。...
- Shell程序编写完成后,不需要用gcc编译器,可以直接运行(选项A错误)。 - Shell程序可以通过`sh`命令或者赋予执行权限后直接运行(选项B正确)。 - Shell函数可以有参数(选项C错误)。 - Linux遵循GPL许可证...
另一道关于UNIX Shell程序的题目,涉及到了对命令行参数的处理。在UNIX Shell中,$#变量保存了命令行参数的个数,因此当用户输入的命令参数为1时,应使用$#来判断。题目要求当命令参数个数为2时执行特定命令,这里填...
gdb插件可以用来生成pattern和判断溢出字符的个数。例如,可以使用以下命令来生成XX个字符: `cyclic -l 0x某某地址` 然后,可以使用pattern.py脚本来制造XX个字符: `python pattern.py create XX` execve系统...
0171 判断字符在字符串中出现的个数 111 0172 在语句中查找汉字的个数 112 0173 如何统计中英文个数 112 5.5 字符串的其他操作 113 0174 返回指定字符串的起始位置 113 0175 获得汉字的拼音简码 113 ...
- **内部变量**包括`ARGC`(命令行参数的个数)、`ARGV`(命令行参数数组)、`FILENAME`(当前输入文件名)等,这些变量主要用于控制程序的执行流程或获取系统信息。 - **用户自定义变量**用于存储程序运行过程中...
#### 计算一个数中1的个数和判断一个数是不是2的幂 - **计算1的个数**:可以通过位运算来逐位检查。 - **判断是否为2的幂**:利用 `num & (num - 1)` 的结果是否为0来判断。 #### 几个查找指令(type、whereis、...
0171 判断字符在字符串中出现的个数 111 0172 在语句中查找汉字的个数 112 0173 如何统计中英文个数 112 5.5 字符串的其他操作 113 0174 返回指定字符串的起始位置 113 0175 获得汉字的拼音简码 113 ...
mkuser id=101 pgrp=informix home=/opt/informix shell=/usr/bin/csh informix //创建用户informix,命令参数说明 //id:指定用户的id号,请根据规划设置; //pgrp:指定该用户的归属组,请根据规划设置; //home:指定...