天天看点

Linux学习之路8(2):认识和学习bash第十章 认识和学习bash

第十章 认识和学习bash

read:从键盘输入值赋予给变量。当读到read的时候,系统就会停下来,等待从键盘输入值。read在命令行中用的不多,也可以用read给变量赋值。一般用在脚本文件中。个人认为echo的意思和cout的意思差不多,不过echo自带回车功能,不想要回车:-n。

#!/bin/bash

echo “请输入值。”

read xx

echo “你刚刚输入的值为$xx”(xx是数字的话最好用{}括起来)

在命令行中,read xx,输入值后,echo $xx就可以查看xx这个变量的值。如果没有xx,那么会有一个默认的变量REPLY,echo $REPLY也能显示刚刚输入的值。

ARRAY:如果一个命令的结果有很多值,那么数组就可以很好的来管理这些值。

定义一个数组:xx=(aa bb cc dd),数组的下标也是从0开始的。

获取数组值得方式:echo ${xx[0]}

查看所有的元素:${xx[*]}或者${xx[@]}.

查看所有的下标:${!xx[@]},查看元素的个数:${#xx[@]}。

declare:定义一个环境变量。上面已经讲过它的使用。

只读变量:declare –r xx,这个xx变量就是一个只读变量。

也可以这样写:readonly xx。只读变量不可以修改,不可以unset。

双引号,单引号,反引号的区别:

双引号里面的变量会被解析出来,而单引号里面是什么就会输出什么,当反引号嵌套在命令里面的时候,反引号里面的内容会优先被执行。反引号同$()。echo “xxxx`hostname` xxx” ó echo“xxxx$(hostname)xxx”

在输出变量时,最好用{}把变量括起来。如变量xx,echo “${xx}”。

ulimit:限制文件大小,直接输入命令ulimit,就可以查看限制。ulimit –a可以查看所有的限制,ulimit –f 数字(单位是字节) ,这样就可以限制文件的大小。

变量内容的删除,替代和替换:

变量的删除:

定义变量path=$PATH(当申明变量的时候,不加‘$’,使用变量中的内容的时候,要加上‘$’)。

修改变量:‘%’,‘#’,‘%%’,‘##’。

‘%’,从后往前删,;例如:r=${path%bin*}。

‘*’:值不管是什么,多有内容。

这句话的意思:从后往前删,只删除第一次出现bin的之后的内容。

r=${path%%bin*}:从后往前删,一直删除最后一次出现bin的之后到的内容。

‘#’,从前往后删,效果与‘$’相同。

判断变量是否存在:r=${xx-“aaaaaaaaaa”}:如果xx存在,会把xx的值赋给变量r,如果xx不存在,会把aaaaaaa这个值赋给变量r,这样不会判断xx是否为空值,就算是空值,也会传递给r。

r=${xx:-“aaaaaaa”}:如果xx存在,而且xx不为空值,那么xx的值会传递给r,否则,aaaaaaa会传递个r。

r=${xx:=”aaaaaaaa”}:如果xx不存在,那么aaaaaa会赋值给xx,同时也会赋值给r。

r=${xx:?”aaaaaaaa”}:如果xx没有被定义或者xx为空值的话,那么就会输出?后面的警告信息。

r=${xx:+”aaaaaaaa”}:xx如果定义了,并且xx为非空值得话,那么aaaaaa这个值会赋值给变量r。

       命令的别名:alias。取消别名:unalias。alias aa=”ifconfigeth0”。

unalias aa。

       查看历史:history。只能保存1000个命令,因为变量HISTFILESIZE的值是1000。清空历史命令:history –c。

继续阅读