SHELL 数组:数组赋值中符号使用不正确(应该严格按"()"赋值),赋值后不能正确求出数组的长度。
2018-02-06 00:48
405 查看
一个小问题,困扰初学者的我很久。
先上一段代码:
结论如下:如果在数组赋值时,没有使用“()”,那么在取数组的长度时,就会出错。可能还要其他意想不到的错误。所以为了保险起见,还是使用“()”把值括起来。
先上一段代码:
#!/bin/bash clear num=`cat tmp.txt|xargs` echo "********数字数组********" for i in ${num[@]} do echo $i done echo "数组是"${num[@]} echo "数组是"${num[*]} echo "个数是"${#num[*]} echo "个数是"${#num[@]} echo ${num[2]} unset num echo "********数字数组********" echo "********字符串数组********" num1="this is a good day" for i in ${num1[@]} do echo $i done echo ${num1[@]} echo ${num1[*]} echo ${#num1[*]} echo ${#num1[@]} echo ${num1[2]} unset num1 echo "********字符串数组********" echo "********字符串数组2********" num2=(1 2 3 4 5 6 7) for i in ${num2[@]} do echo $i done echo ${num2[@]} echo ${num2[*]} echo ${#num2[*]} echo ${#num2[@]} echo ${num2[2]} echo "********字符串数组2********" echo "********字符串数组3********" num3=(it is a good day) for i in ${num3[@]} do echo $i done echo ${num3[@]} echo ${num3[*]} echo ${#num3[*]} echo ${#num3[@]} echo ${num3[2]} echo "********字符串数组3********"执行后结果
********数字数组******** 34 21 13 8 5 3 2 1 1 数组是34 21 13 8 5 3 2 1 1 数组是34 21 13 8 5 3 2 1 1 个数是1 个数是1 ********数字数组******** ********字符串数组******** this is a good day this is a good day this is a good day 1 1 ********字符串数组******** ********字符串数组2******** 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 7 7 3 ********字符串数组2******** ********字符串数组3******** it is a good day it is a good day it is a good day 5 5 a
结论如下:如果在数组赋值时,没有使用“()”,那么在取数组的长度时,就会出错。可能还要其他意想不到的错误。所以为了保险起见,还是使用“()”把值括起来。
相关文章推荐
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 提交
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 在一个长度为10的整形数组中,前9个元素是{12,23,34,45,56,67,78,89,90}。 现在要求输入一个整数,把它放到数组中正确的位置当中。(不能删除已有元素)
- 如何使用H5判断登录页面手机号码长度是否正确和账号密码不能为空,从而减少对服务器的请求(注册也一样)
- Makefile赋值符号的使用——"=" ":=" "?=" "+="
- Regex.Split 在分割 "|" 符号时出现问题,应该使用 "[|]" 才可以分组
- Ubuntu 16.04下Shell脚本中使用数组提示:Syntax error: "(" unexpected
- 定义一个100长度的整型数组,使用rand函数生产随机数对每个元素进行赋值,顺序遍历该数组,输出所有值大于50的数。输出格式例子为:
- Javascript中使用new ActiveXObject("WScript.Shell")创建对象,出现:Automation服务器不能创建对象的错误,其原因有
- shell中用$来引用变量的值,但对变量赋值的时候无需使用$符号
- Html5 input日期时间输入类型标签赋值 正确的格式应该是value="2014-03-15T08:00"
- Makefile赋值符号的使用——"=" ":=" "?=" "+="
- 定义一个100长度的整型数组,使用rand函数生产随机数对每个元素进行赋值,顺序遍历该数组,输出所有值大于50的数