在linuxshell脚本实例中求长度的几种常见方式

shell中如何在函数内计算数组长度?
[问题点数:80分]
本版专家分:0
CSDN今日推荐
本版专家分:0
本版专家分:20
2016年10月优秀小版主
2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
2017年7月 PHP大版内专家分月排行榜第二2017年6月 PHP大版内专家分月排行榜第二2017年5月 PHP大版内专家分月排行榜第二2017年4月 PHP大版内专家分月排行榜第二2017年3月 PHP大版内专家分月排行榜第二2016年12月 PHP大版内专家分月排行榜第二2016年11月 PHP大版内专家分月排行榜第二2016年10月 PHP大版内专家分月排行榜第二2016年9月 PHP大版内专家分月排行榜第二2016年7月 PHP大版内专家分月排行榜第二2016年6月 PHP大版内专家分月排行榜第二2016年3月 PHP大版内专家分月排行榜第二2016年2月 PHP大版内专家分月排行榜第二2016年1月 PHP大版内专家分月排行榜第二2015年11月 PHP大版内专家分月排行榜第二2015年10月 PHP大版内专家分月排行榜第二2015年8月 PHP大版内专家分月排行榜第二2015年7月 PHP大版内专家分月排行榜第二2015年6月 PHP大版内专家分月排行榜第二2015年4月 PHP大版内专家分月排行榜第二2015年3月 PHP大版内专家分月排行榜第二2015年2月 PHP大版内专家分月排行榜第二2015年1月 PHP大版内专家分月排行榜第二2014年12月 PHP大版内专家分月排行榜第二2014年11月 PHP大版内专家分月排行榜第二2014年10月 PHP大版内专家分月排行榜第二2014年9月 PHP大版内专家分月排行榜第二2014年8月 PHP大版内专家分月排行榜第二2014年7月 PHP大版内专家分月排行榜第二2014年6月 PHP大版内专家分月排行榜第二
本版专家分:0
本版专家分:10
匿名用户不能发表回复!
其他相关推荐
在JS中,字符串类型String和数组类型Array都有一个叫length的长度属性值,可以用[对象名.length]的方式读取出来,这里的length是对象固有的属性,不是方法,因此不用.length(),而是直接用.length。
在Java中,数组是引用数据类型,不是类,因此也是读取固有的length属性得到数组长度,它没有length()方法。但是,java中的Stri
C++面试题5:建议在函数里面不要用sizeof算数组的大小
#include using namespace::
void foo(const int[]);
int main()
int arr[3] = {1,2,3};
cout&in main array size: &sizeof(arr)/sizeof(int)&&
在C++中没有像java一样提供的计算字符串的方法,所以要自己去定义数组的计算。
方法如下:
#include &stdafx.h&
void arrytest();
#define GET_ARR_LEN(__X__) (sizeof(__X__) / sizeof(*(__X__)))
int main(){
php中数组长度的获取
在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧。
php如何获取数组的长度,使用php函数count(),或是sizeof()
$arr = Array('0','1','2','3','4');
echo count($arr)
昨天参加了腾讯2014的s
PHP中获取数组长度:count()函数、sizeof()函数
获取二维数组长度:
count()函数有两个参数:
count($arr,COUNT_NORMAL); //默认,不检测多维数组
count($arr,COUNT_RECURSIVE); //检测多维数组
$arr = array(
0=&array('name'=&'kong','age'=&'
1、对类型为数组的方法进行测试时,发现不加@符号都会出错。比如:要对一个数组调用count方法求出数组的长度,就可以这样调用{array|@count},而要对数组调用end方法得出数组的最后一组数据时,则可以通过{array|@end}。
2、在对字符串的相关函数进行测试,发现加不加@都可以正常的调用。
常见的数组就是字符数组和整型数组,今天给大家介绍两种求数组长度的方法。
一.、sizeof函数
同个这个函数可以求得这两种类型的数组的长度。
首先sizeof的功能是返回一个对象或者类型所占的内存字节数。
所以我们可以通过以下代码来获取数组的长度
sizeof(数组名)/sizeof(数组类型)
假如存在如下的字符串数组
char* pArry[] = {&abc&,&defg&,&dddddd&};
怎样计算这个数组的长度。
C、C++中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?
其中一种方法是使用sizeof(array) / sizeof(array[0]), 在
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
array_name&1& 使用$#直接求解
${#变量名}
[root@localhost SHELL]
[root@localhost SHELL]
[root@localhost SHELL]
&2&使用管道符与wc的组合求解
echo $变量名
[root@localhost SHELL]
[root@localhost SHELL]
&3&使用expr命令求解
[root@localhost SHELL]
[root@localhost SHELL]
&4&使用awk求解
length($0)}’
[root@localhost SHELL]
[root@localhost SHELL]
如何获取shell的最大命令行长度
linux的shell可以输入命令行,但是其长度是有限制的,在编写脚本程序的时候需要注意,否则可能由于命令过长而拒绝执行。
获取这一系统参数的方法是:getconf ARG_MAX...
工作中服务器所有服务都会一个小时生成一个日志文件,从而导致磁盘越来越大,所以需要定期清理文件。但是又不能一次性全部删除,所以写了这么个脚本,用于删除制定目录下两个星期以前生成的日志文件。#!/...
* PHP脚本执行时间计算
class runtime
var $StartTime = 0;
var $StopTime = 0;
* PHP脚本执行时间计算
class runtime
var $StartTime = 0;
var $StopTime = 0;
几种获取音视频播放时间长度的方法
( shell32, WMP, ffmpeg )
1.使用Windows系统组件Shell32.Shell 程序集路径:C:\WINDOW...
如何使用shell从一个文件中取出不在另一个文件中的内容
本文展示如何利用shell从一个文件中,(按行)找出不在另一个文件中的内容。
#!/bin/bash
#@filename checkAddWord.sh
#allword.txt
bash和shell的区别
Linux 中的 shell 有很多类型,其中最常用的几种是: Bourne shell (sh)、C shell (csh) 和 Korn shell (ksh), 各有优缺点。Bourne she...
shell 获取结果中的第n列,第n行
[root@192.168.10.11 zabbix]# ls -l
-rw-r--r-- 1 root root 2485 Dec
2 15:42 zabbix_agent.co...
Linux下查看使用的是哪种shell的方法汇总
转自:http://www.jb51.net/LINUXjishu/247797.html
查看当前发行版可以使用的shell
[root@localhost ~...
没有更多推荐了,Shell脚本中判断输入参数个数的方法
&更新时间:日 10:50:13 & 投稿:junjie
这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数,需要的朋友可以参考下
$#代表了命令行的参数数量,可以看以下实例:
if [ $# != 1 ] ; then
echo "USAGE: $0 TABNAME"
echo " e.g.: $0 CDR_CALL_"
位置参数 $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"
weight="$1"
height="$2"
idealweight=$[$height - 110]
if [ $weight -le $idealweight ] ; then
echo "You should eat a bit more fat."
echo "You should eat a bit more fruit."
# 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用来检查脚本的执行情况。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具shell 怎么获取数组长度_百度知道
shell 怎么获取数组长度
想获取数组的长度,根据长度判断下一步怎么执行...
想获取数组的长度,根据长度判断下一步怎么执行
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
xiehuahere
来自电脑网络类芝麻团
xiehuahere
采纳数:3679
获赞数:15821
参与团队:
arr=(1&2&3&4&5)len=${#arr[@]}echo&$len关于shell数组的更多操作,参见我的空间文章《shell数组与awk数组》
谢谢大神,如果我想获取数组中的某一个元素呢,比如我想获取第2个元素,怎么获取?
上面链接的文章看一下就行了,不长。echo&${arr[1]}&#获取第2个元素数组下标从0开始。
非常感谢,我现在在上班,很多网站不能登,你给的链接我回家会好好看,再次致谢
<span class="wgt-replyer-all-uname
" data-href="https://zhidao.baidu.com/usercenter?uid=edfb05eropeff
<span class="wgt-replyer-all-card-name3 wgt-replyer-all-card-names" data-href="https://zhidao.baidu.com/usercenter?uid=edfb05eropeff
采纳数:251
获赞数:322
擅长:暂未定制
C++ 老人家们 获取 数组的长度怎么获取 ?比如一个数组int a[10]={1,2,3,0,7,6};我要获取它的实际长度6而非10,怎么弄啊注意里面有个0,这就是难点
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。第一类:lseek/fseek1、lseek
代码片段:int GetFileSize(char *_pName) {
int iFd = -1;
if (_pName == NULL)
return -1;
iFd = open(_pName, O_RDONLY);
if (iFd &= 0)
iLen = lseek(iFd, 0, SEEK_END);
close(iFd);
return iFd;} 2、fseek+ftell:特别注意文件指针的位置
GetFileSize(char *_pName )
FILE *fp;
fp = fopen("_pName ",rw);
if(fp==NULL)
return -1;
SEEK_END);
ftell(fp);
第二类:stat、fstat函数族
函数原型:
int stat(char *filename,struct stat *s);
int fstat(int fd,struct stat *s);
代码片段:以stat为例,fstat只是第一个参数用文件描述符。
#include &unstd.h&
#include &sys/stat.h&
int GetFileLen( char *_pName )
stat(_pName, &st);
return st.st_
filelength获取文件长度
filelength函数用于获取文件的长度,但是最大只能获取2g的文件大小,因为返回值类型long使用4个字节大小来表示,最大为2的31次方也就是2G的大小。
#include &stdafx....
对于linux获取文件大小,有几种方式,首先是比较明显的方案,调用stat方式,该方式直接获取文件大小,比较明显,剩下的两种方式都是采用间接方式,将文件游标指向文件末尾,然后获取游标相对于文件开头的偏...
没有更多推荐了,

我要回帖

更多关于 shell脚本语言入门 的文章

 

随机推荐