变量键盘读取、宣告与数组: read, declare, array
来源:互联网 发布:什么越狱软件最好 编辑:程序博客网 时间:2024/06/01 12:41
我们平时提到的变量设定功能,都是由指令列直接设定的,其实,也可以让用户能够经由键盘输入。如某些程序执行的过程当中,会等待使用者输入 "yes/no" 之类的讯息,在 bash 里面也有相对应的功能!此外,我们还可以宣告这个变量的属性, 例如:数组或者是数字等等的。底下就来看看!
read
要读取来自键盘输入的变量,就是用 read 这个指令了。这个指令最常被用在 shell script 的撰写当中, 想要跟使用者对谈?用这个指令就对了。底下先来瞧一瞧 read 的相关语法![root@www ~]# read [-pt] variable
选项与参数:
-p :后面可以接提示字符!
-t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!
范例一:让用户由键盘输入一内容,将该内容变成名为 atest 的变量
[root@www ~]# read atest
This is a test <==此时光标会等待你输入!请输入左侧文字看看
[root@www ~]# echo $atest
This is a test <==你刚刚输入的数据已经变成一个变量内容!
范例二:提示使用者 30 秒内输入自己的大名,将该输入字符串作为名为 named 的变量内容
[root@www ~]# read -p "Please keyin your name: " -t 30 named
Please keyin your name: VBird Tsai <==注意看,会有提示字符喔!
[root@www ~]# echo $named
VBird Tsai <==输入的数据又变成一个变量的内容了!
read 之后不加任何参数,直接加上变量名称,那么底下就会主动出现一个空白行等待你的输入(如范例一)。 如果加上 -t 后面接秒数,例如上面的范例二,那么 30 秒之内没有任何动作时, 该指令就会自动略过了~如果是加上 -p ,嘿嘿!在输入的光标前就会有比较多可以用的提示字符给我们参考! 在指令的下达里面,比较美观! ^_^
declare / typeset
declare 或 typeset 是一样的功能,就是在『宣告变量的类型』。如果使用 declare 后面并没有接任何参数,那么 bash 就会主动的将所有的变量名称与内容通通叫出来,就好像使用 set 一样啦! 那么 declare 还有什么语法呢?看看先:
[root@www ~]# declare [-aixr] variable
选项与参数:
-a :将后面名为 variable 的变量定义成为数组 (array) 类型
-i :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
-x :用法与 export 一样,就是将后面的 variable 变成环境变量;
-r :将变量设定成为 readonly 类型,该变量不可被更改内容,也不能 unset
范例一:让变量 sum 进行 100+300+50 的加总结果
[root@www ~]# sum=100+300+50
[root@www ~]# echo $sum
100+300+50 <==没有计算和,因为这是文字型态的变量属性啊!
[root@www ~]# declare -i sum=100+300+50
[root@www ~]# echo $sum
450
由于在默认的情况底下, bash 对于变量有几个基本的定义:
1. 变量类型默认为『字符串』,所以若不指定变量类型,则 1+2 为一个『字符串』而不是『计算式』。 所以上述第一个执行的结果才会出现那个情况的;
2. bash 环境中的数值运算,预设最多仅能到达整数形态,所以 1/3 结果是 0;
范例二:将 sum 变成环境变量
[root@www ~]# declare -x sum
[root@www ~]# export | grep sum
declare -ix sum="450" <==果然出现了!包括有 i 与 x 的宣告!
范例三:让 sum 变成只读属性,不可更动!
[root@www ~]# declare -r sum
[root@www ~]# sum=tesgting
-bash: sum: readonly variable
范例四:让 sum 变成非环境变量的自定义变量吧!
[root@www ~]# declare +x sum <== 将 - 变成 + 可以进行『取消』动作
[root@www ~]# declare -p sum <== -p 可以单独列出变量的类型
declare -ir sum="450" <== 看吧!只剩下 i, r 的类型,不具有 x 啰!
declare 也是个很有用的功能,尤其是当我们需要使用到底下的数组功能时, 他也可以帮我们宣告数组的属性喔!不过,老话一句,数组也是在 shell script 比较常用的!如果不小心将变量设定为『只读』,通常得要注销再登入才能复原该变量的类型了!
数组 (array) 变量类型
某些时候,我们必须使用数组来宣告一些变量,在 bash 里头,数组的设定方式是: var[index]=content意思是说,我有一个数组名为 var ,而这个数组的内容为 var[1]=小明, var[2]=大明, var[3]=好明 .... 等等,那个 index 就是一些数字啦,重点是用中刮号 ([ ]) 来设定的。 目前我们 bash 提供的是一维数组。要制作数组, 通常与循环或者其他判断式交互使用才有比较高的存在意义!
范例:设定上面提到的 var[1] ~ var[3] 的变数。
[root@www ~]# var[1]="small min"
[root@www ~]# var[2]="big min"
[root@www ~]# var[3]="nice min"
[root@www ~]# echo "${var[1]}, ${var[2]}, ${var[3]}"
small min, big min, nice min
数组的变量类型比较有趣的地方在于『读取』,一般来说,建议直接以 ${数组} 的方式来读取,比较正确无误!
- 变量键盘读取、数组与宣告: read, array, declare
- 变量键盘读取、宣告与数组: read, declare, array
- 变量键盘读取、数组与声明:read、array、declare
- Linux变量键盘读取、数组与声明: read, array, declare
- linux边学边记--变量键盘读取、数组与声明:read 、array、declare、变量修改及设置方式
- 十三. shell变量键盘读取,数组与声明:read, array, declare
- bash学习:变量键盘读取、数组与声明:read、array、declare
- Linux下Bash的变量使用,echo,read,declare,typeset,array,
- Linux下Bash的变量使用,echo,read,declare,typeset,array,
- shell 知识点补充(1)-提示字符的设定/read/declare / typeset/变量设定功能/别名/万用字符与特殊符号
- shell 定义数组,declare 输出数组,变量自加
- shell 利用read与键盘进行交互, 来取得变量的值
- ASP强制宣告变量
- Linux学习- declare / typeset 声明变量类型与属性
- declare 声明变量类型
- SQL定义变量DECLARE
- Sql declare申明变量
- linux:bash变量:declare
- UITableView
- STM32 RT-Thread
- 排序的笔记
- 树莓派+XBMC=电视盒子(by quqi99)
- 开始使用PHPUnit
- 变量键盘读取、宣告与数组: read, declare, array
- 我是一股独立向上的力量
- onkeyup,onkeydown和onkeypress
- Android中dp和px之间进行转换
- 一个有趣的swap函数
- #leetcode#Distinct Subsequences
- 【POJ 1125】Stockbroker Grapevine
- Composer PHP依赖管理的新时代
- CentOS 6.x 内核升级(2.6.32 -> 3.10.58)过程记录