Linux菜鸟笔记——BASH(二)

实验环境:Ubantu  16.04


一、变量键盘读取(read

read xxx #从键盘获取输入,存到xxx变量中

read #从键盘获取输入,存到REPLY变量中

 

echo -n “请输入您的名字:” #”-n”是打印完不换行的意思

read name

echo “欢迎你,$name”

前两句代码等同于:

read -p “请输入您的名字:” name #获取输入时先打印提示信息

 Linux菜鸟笔记——BASH(二)

  Linux菜鸟笔记——BASH(二)


二、数组(array)

1、定义一个数组

array1=(aa bb cc dd)

Linux菜鸟笔记——BASH(二)

2、打印其中一个元素

echo ${array1[0]} #打印结果:aa 

Linux菜鸟笔记——BASH(二)

3、打印所有元素

echo ${array1[*]} #打印结果:aa bb cc dd

或:echo ${array1[@]}

Linux菜鸟笔记——BASH(二)

4、打印所有下标

echo ${!array1[*]} #打印结果:0 1 2 3

或:echo ${!array1[@]}

Linux菜鸟笔记——BASH(二)

5、打印数组的元素个数

echo ${#array1[*]} #打印结果:4

echo ${#array[@]}

  Linux菜鸟笔记——BASH(二)


三、声明(declare)

1、声明变量为只读

Linux菜鸟笔记——BASH(二)

注:变量为只读时无法修改值、删除(unset)

2、单引号内忽略特殊意义(也就是说’’内是什么就打印出什么)

Linux菜鸟笔记——BASH(二)

3、反引号

Linux菜鸟笔记——BASH(二)

等同于echo “xxxxxxx $(hostname) xxxxxxxxx”  #hostname是一个变量

 

四、与文件系统及程序的限制关系(ulimit)

1、查看所有限制

ulimit -a

Linux菜鸟笔记——BASH(二)

2、限制单个文件大小

ulimit -f 20480 #只对当前bash有效,退出后即恢复为unlimited

dd if=/dev/zero of=file bs=1M count=30 #会提示“文件大小超出限制,因为上一句限制了最大为20M

 

五、变量内容的删除、替换

Linux菜鸟笔记——BASH(二)

1.变量删除:

path=$PATH

r=${path#*sbin:} #”#”表示从头部开始删,直到第一个”sbin:”,

r=${path##*sbin:} #”##”表示从头部开始删,直到最后一个”sbin:”

  Linux菜鸟笔记——BASH(二)


r=${path%bin*} #”%”表示从尾部开始删,直到遇到第一个”bin”

r=${path%%bin*} #”%%”表示从尾部开始删,直到最后一个”bin”

Linux菜鸟笔记——BASH(二)

 

2.变量替换

r=${xx-”aaa”}

如果xx存在且值不为空:xx赋给r

如果xx存在且值为空:xx赋给r

如果xx不存在:”aaa”赋给r

 

r=${xx:-”aaa”}

如果xx存在且值不为空:xx赋给r

如果xx存在且值为空:”aaa”赋给r

如果xx不存在:”aaa”赋给r

 

r=${xx:=”aaa”}

如果xx存在且值不为空:xx赋给r

如果xx存在且值为空:”aaa”赋给rxx

如果xx不存在:”aaa”赋给rxx

 

r=${xx:?”aaa”}

如果xx存在且值不为空:”aaa”赋给r

如果xx存在且值为空:打印”aaa”;

如果xx不存在:打印”aaa”;

 

r=${xx:+”aaa”}

如果xx存在且值不为空:xx赋给r

如果xx存在且值为空:;

如果xx不存在:”aaa”不会赋给r

 

 

六、命令别名设置

alias #显示目前已有的别名

alias aa=”ifconfig eth0” #设置别名

unalias #取消别名

  Linux菜鸟笔记——BASH(二)

Linux菜鸟笔记——BASH(二)


七、历史命令

history #查看历史命令(默认保存1000个,通过环境变量$HISTFILESIZE修改)

!120 #快速调用序号为120的历史命令

history -c #清除所有历史命令

Linux菜鸟笔记——BASH(二)