(linux shell)第一章--小试牛刀(下)
文章来源: (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)第一章--小试牛刀(下)的更多相关文章
- (linux shell)第一章--小试牛刀(上)
来源:(linux shell)第一章--小试牛刀(上) 从今天開始,我们一起来学习<linux shell脚本攻略>这本书. 1.1简单介绍 shell脚本一般是一个以#!起始的文本文件 ...
- (linux shell)第二章--命令之乐(一)
文章来自于我的个人博客:(linux shell)第二章--命令之乐(一) 上一章我们描写叙述了一些linux shell中须要注意的一些语法.接下来我们開始了解linux shell的经常使用 ...
- 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)
如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...
- MVC 第一章(下)
继续第一章 用Javascript and jQuery调用Web API 在上一节,我们用浏览器直接调用web API.但是大多数web API被客户端应用以编程的方式调用.那么我们写一个简单的ja ...
- 【菜鸟学习Linux】-第一章-Linux环境搭建-安装VMware虚拟机
本人菜鸟一个,刚毕业才上班2个月,现在用到Linux部署项目,这才开始学习Linux,以下是我在安装Linxu系统是遇到的一些问题,希望能给广大菜鸟们在学习的道路上提供帮助和指导,废话不多说!开工! ...
- Shell第一章《变量》
shell前言 什么是shell shell-'壳' 命令解释器,一种应用程序 shell语言特点 SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称. Shell本身是 ...
- LinuxShell脚本攻略--第一章 小试牛刀
使用 shell 进行数学运算: #!/bin/bash no1=; no2=; let result=no1+no2 echo $result result=$[ $no1 + no2 ] resu ...
- 第一章 mac下开发环境的配置
mac系统与Linux系统差不多,但是与windows系统版本非常不同. 1.jdk 安装与卸载:https://docs.oracle.com/javase/8/docs/technotes/gui ...
- linux系统管理第一章作业
上机作业: 1.请用命令查出ifconfig命令程序的绝对路径 [root@localhost ~]# which ifconfig /usr/sbin/ifconfig 2.请用命令展示以下命令哪些 ...
随机推荐
- 田字格布局html div
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- vue-cropper
项目中用到了vue-cropper插件,让我觉得很好用附上两个地址 vue-cropper在git上的地址 https://github.com/xyxiao001/vue-cropper 针对vue ...
- zabbix基础安装
环境依赖:LNMP或者LAMP 简介参考:http://blog.51cto.com/zhang789/1868880 一.准备 我安装的环境及其版本如下: 系统版本 CentOS Linux rel ...
- ActiveX控件获取不到对象属性或者方法的原因分析
1.找不到调用的DLL或程序: 2.调用控件方法名称,与定义的函数名称不符合: 3.如果是网站网页调用ActiveX,检查控件是否添加安全对象: 4.如果是网站网页调用ActiveX,检查网页是否加入 ...
- 05EXtensible Stylesheet Language
1. EXtensible Stylesheet Language 1. EXtensible Stylesheet Language XSL 指扩展样式表语言(EXtensible Styleshe ...
- JS正则表达式验证(一)
目录: 手机号验证 固定电话验证 手机号验证: 写法[1]--->!(/^1[34578]\d{9}$/.test(phone)):以1开头,第二位可能是3/4/5/7/8等的任意一个,在加上后 ...
- 文本框/域文字提示(placeholder)自动显示隐藏jQuery小插件
// 文本框文本域提示文字的自动显示与隐藏 (function($){ $.fn.textRemindAuto = function(options){ options = options || {} ...
- C++ STL容器之 stack
STL 中的 stack 是一种容器适配器,而不是一种容器. 它是容器适配器是指,只要支持一系列方法的容器(empty, size, back, push_back, pop_back),都能作为st ...
- 笔试算法题(33):烙饼排序问题 & N!阶乘十进制末尾0的个数二进制最低1的位置
出题:不同大小烙饼的排序问题:对于N块大小不一的烙饼,上下累在一起,由于一只手托着所有的饼,所以仅有一只手可以翻转饼(假设手足够大可以翻转任意块数的 饼),规定所有的大饼都出现在小饼的下面则说明已经排 ...
- thinkphp3.2使用PHPQrcode实现二维码
Thinkphp中没有二维码相关的生成库,百度有不少工具和库 这里就实例一下通过think3.2搭配phpqrcode来完成生成二维码的功能. 至于phpQrcode库文件 百度很容易找到这里也给大家 ...