文章来源: (linux shell)第一章--小试牛刀(下)

1.6 数组和关联数组

1.6.1 预备知识

Bash同一时候支持普通数组和关联数组。普通数组仅仅能使用整数作为数组索引,而关联数组能够使用字符串作为数组索引。关联数组在非常多操作中相当实用。

1.6.2 实战演练

定义数组的方法有非常多,能够在单行中使用一列值来定义一个数组:

array_var=(1,2,3,4,5,6)   #这些值将会存储在以0为起始索引的连续位置上

另外。还能够将数组定义成一组索引-值:

array_var[0]="test1"

array_var[1]="test2"

打印出特定数组元素的内容:

echo ${array_var[0]}

以清单形式打印出数组中的全部值:

echo ${array_var[*]}

打印数组长度

echo ${#array_var[*]}

1.7 使用别名

1.7.1 预备知识

别名有多种便捷方式。能够使用函数,也能够使用alias命令

1.7.2 实战演练

alias new_command='command sequence'

alias install='sudo apt-get install'

当然。这样改动的别名仅仅是临时的,仅仅对当前终端有效。假设想一直保持作用,可将它放入~/.bashrc中

1.8 获取终端信息

1.8.1 预备仅仅是

tput和stty是两款终端处理工具。

1.8.2 实战演练

获取终端的行数和列数

tput cols

tpu lines

打印出当前终端名称:

tput longname

将光标移动到方位(100,100)处

tput cup 100 100

设置终端背景色

tput setb no(0--7)

设置文本样式为粗体:

tput bold

删除当前光标到行尾的全部内容:

tput ed

使用stty -echo 能够隐藏用户输入的内容

1.9 获取设置日期和延时

1.9.1 实战演练

读取日期:

date

打印纪元时

date +%s

选项--date用于提供日期串作为输入。

但我们可以使用随意的日期格式化选项来打印输出。将日期串作为输入可以过用来获知给定的日期是星期几

date --date 'Jan 20 2011' +%A

能够依照你的选择打印出日期格式:

date "+%d %B %Y"

时间的延时能够用sleep sec命令

1.10  函数和參数

1.10.1  实战演练

定义函数:

function fname() {

statements;

}

或者fname(){statments}

仅仅须要使用某个函数名就能够调用函数:

fname

调用函数传递參数:

fname arg1 arg2

下面是函数读取參数的语法:

fname() {

echo $1,$2   #訪问參数1和參数2

echo "$@"    #以列表的方式一次打印全部的參数,即"$1" "$2" "$3"

echo "$*"      #类似于$@,可是參数被作为单个实体,即"$1c$2c$3",c是IFS的一个字符

}

1.11 比較与測试

​1.11.1 预备知识

​    ​我们能够用if,if else以及逻辑运算符来运行測试,而用一些比較运算符来比較数据项。另外一个test命令也能够用来測试。

​1.11.2 实战演练

​    ​if condition; then

​    ​    ​commands;

​    ​fi

​    ​算数比較

​    ​条件通常被放置在中括号内,一定要注意在[或]与操作数之间有一个空格。

假设忘记了这个空格。脚本就会报错。比如:

​    ​[ $var -eq 0 ] or [ $var -eq 1 ]

​    ​其他一些重要的操作符有:

​    ​    ​-gt:  大于

​    ​    ​-lt:  小于

​    ​    ​-ge:  大于或等于

​    ​    ​-le:  小于或等于

​    ​能够依照以下的方法结合多个条件进行測试

​    ​[ $var -ne 0 -a $var2 -gt 2 ]   #逻辑与 -a

​    ​[ $var -ne 0 -o $var2 -lt 2 ]   #逻辑或  -o

​    ​

​    ​文件系统相关測试:

​    ​[ -f $file_var ]   #假设给定的变量包括正常的文件路径和文件名称。则返回真

​    ​[ -x $var ]   #假设给定的变量包括的文件可运行,则返回真

​    ​[ -d $var ]   #假设给定的变量包括的是文件夹。 则返回真

​    ​[ -e $var ]   #假设给定的变量包括的文件存在。则返回真

​    ​[ -w $var ]   #假设给定的变量包括的内容可写。则返回真

​    ​[ -d $var ]    #假设给定的变量包括的内容可读。则返回真

​    ​[ -l $var ]     #假设给定的变量包括的是一个符号链接,则返回真

​    ​

​    ​字符串比較:

​    ​    ​能够检查两个字符串是否相等以及不相等:

​    ​    ​[[ $str1 = $str2 ]]    [[ $str1 != $str2 ]]

​    ​    ​比較两个字符串之间的大小:

​    ​    ​[[ $str1 > $str2 ]]  或者 [[ $str1 < $str2 ]]

​    ​    ​[[ -z $str1 ]] 假设str1是空字符串,则返回真

​    ​    ​[[ -n $str1 ]] 假设str1是非空字符串。则返回真​

(linux shell)第一章--小试牛刀(下)的更多相关文章

  1. (linux shell)第一章--小试牛刀(上)

    来源:(linux shell)第一章--小试牛刀(上) 从今天開始,我们一起来学习<linux shell脚本攻略>这本书. 1.1简单介绍 shell脚本一般是一个以#!起始的文本文件 ...

  2. (linux shell)第二章--命令之乐(一)

    文章来自于我的个人博客:(linux shell)第二章--命令之乐(一)    上一章我们描写叙述了一些linux shell中须要注意的一些语法.接下来我们開始了解linux shell的经常使用 ...

  3. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

  4. MVC 第一章(下)

    继续第一章 用Javascript and jQuery调用Web API 在上一节,我们用浏览器直接调用web API.但是大多数web API被客户端应用以编程的方式调用.那么我们写一个简单的ja ...

  5. 【菜鸟学习Linux】-第一章-Linux环境搭建-安装VMware虚拟机

    本人菜鸟一个,刚毕业才上班2个月,现在用到Linux部署项目,这才开始学习Linux,以下是我在安装Linxu系统是遇到的一些问题,希望能给广大菜鸟们在学习的道路上提供帮助和指导,废话不多说!开工! ...

  6. Shell第一章《变量》

    shell前言 什么是shell shell-'壳' 命令解释器,一种应用程序 shell语言特点 SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称. Shell本身是 ...

  7. LinuxShell脚本攻略--第一章 小试牛刀

    使用 shell 进行数学运算: #!/bin/bash no1=; no2=; let result=no1+no2 echo $result result=$[ $no1 + no2 ] resu ...

  8. 第一章 mac下开发环境的配置

    mac系统与Linux系统差不多,但是与windows系统版本非常不同. 1.jdk 安装与卸载:https://docs.oracle.com/javase/8/docs/technotes/gui ...

  9. linux系统管理第一章作业

    上机作业: 1.请用命令查出ifconfig命令程序的绝对路径 [root@localhost ~]# which ifconfig /usr/sbin/ifconfig 2.请用命令展示以下命令哪些 ...

随机推荐

  1. 开源一个一个NodeJS 代理服务器扫描工具,可以用来***

    鉴于我朝很多网站访问不了,google等就是大悲剧,之前一直在用VPN,但是公司内网VPN被封,诸多工具也惨遭毒手..我辈怎能容忍. 目前只有代理没有被封,于是搞了个代理扫描工具并开源: https: ...

  2. element-UI el-table二次封装

    Part.1 为什么要二次封装? 这是 Element 网站的 table 示例: <template> <el-table :data="tableData" ...

  3. idea开启/关闭单词拼写检查

  4. window10换系统为windows7

    第一步 第二步 第三步 下载系统:http://www.dnxtc.net 1.GHO镜像安装器和WIN7,GHO文件必须一起放在除C盘外的其他盘的根目录 2.“GHO镜像安装器“工具上右键管理员方式 ...

  5. adb 设备命令

    一.adb 设备命令1.查看机型时,可以使用以下命令$ adb shell getprop ro.product.model 2.如果我们忘记具体系统属性的名字$ adb shell getprop ...

  6. NPOI--------------.Net操作Excel初步使用(导出)

    背景 因公司项目需要添加数据导出功能故此添加,找了几种方式发现该方式具有 无需依赖本机安装office环境,使用灵活等优点故采用此方式. 安装 Nuget 直接安装NPOI即可 使用方式 1.根据需要 ...

  7. Oracle数据库单表循环提取输出

    现在有如下的表,名称为Test表: ydid            sws_dm          sws_mc           ry_dm    ry_mc 1              1   ...

  8. sqlite3接口简要说明

    本文介绍一下SQLite C/C++接口. 早期的SQLite C/C++接口只有5个接口函数, 很容易学习. 新版本的SQLite新增了很多功能, 目前大概有185个API接口.本文介绍一些核心的A ...

  9. scrollfix.js插件:滚动固定在某个位置

    插件文件在/文件 scrollfix.js 用法: var fix = $(".fix"), fixtop = $(".fix-top"), fixStartT ...

  10. ERC20 Token

    pragma solidity ^0.4.8; contract Token{ // token总量,默认会为public变量生成一个getter函数接口,名称为totalSupply(). uint ...