• read:要读取来自键盘输入的变量 

使用规则:  

  read [-pt] variale

选项与参数:

  -p:后面接提示字符;

  -t:后面接等待的“秒数”;

如果read之后不加任何参数,直接加上变量名称,那么底下就会出现一个空白行等待输入。

应用举例:

1、提示使用者30秒内输入自己的大名,并将输入字符串作为名为named的变量内容。


###read -p “Please keyin your name:” -t 30 named

Please keyin your name:XXX

###echo $named

XXX


  • declare/typeset:宣告变量的类型

使用规则:

  declare [-aixr] variable

选项与参数:

  -a:将后面名为variable的变量定义成为数据(array)类型;

  -i :将后面名为variable的变量定义为整数数字(integer)类型;

  -x:用法与export一样,就是将后面的variable变成环境变量;

  -r :将变量设定为readonly类型,该变量不可被更改内容,也不能unset;

如果declare后面没有接任何参数,那么bash会主动的将所有的变量名称与内容通通显示出来了,就像使用set一样。

应用举例:


1、让变量sum进行100+300+50的加总结果

###sum=100+300+50

###echo $sum

100+300+50

###declare -i sum=100+300+50

###echo $sum

450

第一个显示结果是100+300+50的原因是因为默认的是文字形态的变量属性。

而第二个显示结果显示正确,declare把sum定义为整型数据。


注意:

在默认情况下,bash对变量有几个基本的定义:

  1、变量类型默认为“字符串”,所以不指定变量类型,就会被认为是字符串,所以上例才会出现那种情况。

  2、bash环境中的数值运算,预设最多仅能达到整数形态,即1/3结果是0。

  • 数组(array)变量类型

使用规则:

  var[index]=content     在bash中,这是数组的设定方式。

其中,var是数组名,content是数组的内容

读取:echo ${数组}

LINUX:read、array、declare的更多相关文章

  1. [Swift通天遁地]五、高级扩展-(6)对基本类型:Int、String、Array、Dictionary、Date的扩展

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. 003-Tuple、Array、Map与文件操作入门实战

    003-Tuple.Array.Map与文件操作入门实战 Tuple 各个元素可以类型不同 注意索引的方式 下标从1开始 灵活 Array 注意for循环的until用法 数组的索引方式 上面的for ...

  3. 实现一个函数clone,使JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制

    实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制. 1 /** 对象克隆 2 * 支持基本 ...

  4. Spark存储Parquet数据到Hive,对map、array、struct字段类型的处理

    利用Spark往Hive中存储parquet数据,针对一些复杂数据类型如map.array.struct的处理遇到的问题? 为了更好的说明导致问题的原因.现象以及解决方案,首先看下述示例: -- 创建 ...

  5. scala中List、Array、ListBuffer、ArrayList、Set

    scala中List.Array.ListBuffer.ArrayList.Set 一.List 二.Array 三.LIstBuffer 四.ArrayBuffer 五.Set 一.List Lis ...

  6. 实现一个函数clone,可以对JS中的5种数据类型(Number、String、Object、Array、Boolean)进行值复制

     实现一个函数clone,可以对JS中的5种数据类型(Number.String.Object.Array.Boolean)进行值复制

  7. linux:磁盘的分割、检验、格式化与挂载

    新增一颗磁碟: 1.对磁碟进行分割,以建立可用的partition 2.对该分割槽partition进行格式化(format),以建立系统可用的filesystem 3.若要仔细点,可对刚刚建立的fi ...

  8. Linux:Day12(下) 进程、任务计划

    vmstat命令: vmstat [options] [delay [ count]] procs: r:等待运行的进程的个数: b:处于不可中断睡眠态的进程个数:(被阻塞的队列的长度): memor ...

  9. Linux:Day7(上) find、文件特殊权限、if语句

    文件查找: 在文件系统上查找符合条件的文件: 文件查找工具:locate,find locate:非实时查找(数据库查找) find:实时查找: locate: 依赖于事先 构建的索引:索引的构建是在 ...

随机推荐

  1. Linux C++线程池

    .为什么需要线程池? 部分应用程序需要执行很多细小的任务,对于每个任务都创建一个线程来完成,任务完成后销毁线程,而这就会产生一个问题:当执行的任务所需要的时间T1小于等于创建线程时间T2和销毁线程时间 ...

  2. 浅谈一下关于iscroll的使用心得

    因为最近的项目所有页面老板想做成苹果原生那种上下拉动有回弹效果的体验,浏览器自带是没有这种功能的,自己写的话兼容性可能会出大问题,要适配安卓的各种机型实在是难,所以我还是选择去使用移动端相对比较稳定的 ...

  3. EJB 简介

    EJB: 被称为java企业bean,服务器端组件,核心应用是部署分布式应用程序.用它部署的系统不限定平台.实际上ejb是一种产品,描述了应用组件要解决的标准 标准:   可扩展 (Scalable) ...

  4. iOS - iOS 应用

    1.Xcode 项目属性 Product Name 软件名称.产品名称.项目名称 Organization Name 公司名称.组织名称 Organization Identifier 公司的唯一标识 ...

  5. redsocks 将socks代理转换成全局代理

    redsocks 需要手动下载编译.前置需求为libevent组件,当然gcc什么的肯定是必须的. 获取源码 git clone https://github.com/darkk/redsocks 安 ...

  6. sublime jsx 格式化工具

    1.到Sublime Text 3\Packages\ 目录下 git clone https://github.com/ionutvmi/sublime-jsfmt jsfmt 2.重启sublim ...

  7. Python之路 day2 文件基础操作

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa ''' #f,文件句柄;模式 a : append 追加文件内容 f = open( ...

  8. 【adb】adb基本命令总结

    adb常用基本命令如下: adb devices           列出你的devices aapt dump badging <file_path.apk>     查看包名 adb ...

  9. ios基础操作

    ////  main.m  //文件名//  Day2-上课//工程名////  Created by 张开 on 16/1/5.//创建日期及创建人 ////单行注释:可以注释一段代码,起到了解释说 ...

  10. 解决Strokeit在win8下的图标问题和开机启动问题

    Strokeit目前和Windows 8有一点不兼容,就是运行之后,任务栏会有它的图标,看着很不爽,用兼容模式运行可解决这个问题,但是这样一来就不能开机自动运行了,本文主要解决这个问题.  (参考资料 ...