shell脚本学习二
文章目录
- shell脚本学习二
- 1.echo
- 2.read
- 3.变量概念与解析
- 4.变量分类
- 5.定义变量
- 6.数组
- 7.数据的比较运算
- 总结
1.echo
代码如下(示例):
简介:一个程序需要有0或以上的输入,一个或者多个输出。
功能:将内容输出到默认设备
语法:echo 选项 内容
-n: 不要自动换行。以为echo会自动换行的
-e: 出现一下字符要特殊处理,不会以一般字符串输出。
\a: 发出警告声;
\b: 删除前一个字符;
\c: 最后不加上换行符;
\t: 相当于插入一个table键;
\n: 换行
等等.....
ex:
#!/usr/bin/bash
echo -e "\t\t\t\tFruits Shop"
echo -e "\t1) Apple"
echo -e "\t2) Orange"
echo -e "\t3) Banana"
颜色:
格式:echo -e "\033[字体背景色;文字颜色m 字符串\033[属性效果";
ex:echo -e "\033[41;36m哈哈哈哈\033[0m";
2.read
代码如下(示例):
简介:默认接受键盘的输入,回车符代表输入结束
命令选项:
-p: 打印信息;
-t: 限定时间,read -t5,5秒之后退出;
-s: 不显示输入的字符;
-n: 限制输入字符个数,read -n6,密码只能输入6位数
ex:
#! /usr/bin/bash
clear
echo -n -e "Login: "
read
echo -n -e "Password: "
read
echo "你是一个超级大帅比!!!"
Tips:read 变量名,这样你键盘输入的值就可以通过这个变量名取出来了
ex:
#! /usr/bin/bash
clear
echo -n -e "Login: "
read acc
echo -n -e "Password: "
read pwdd
echo "$acc 你是一个超级大帅比!!!"
Tips: read可以取代echo的部分功能
ex:
#! /usr/bin/bash
clear
read -p "Login: " acc
read -p "Password: " pwdd
echo "$acc 你是一个超级大帅比!!!"
3.变量概念与解析
4.变量分类
Tips:建议变量都写成大写,单词之间以下划线分割。ex:USER_NAME
#! /usr/bin/bash
NAME='Ge Cheng'
AGE=18
SCORE=100
echo "name:$NAME,age:$AGE,score:$SCORE"
5.定义变量
unset 变量名:取消变量
定义的变量默认是私有变量,可以在变量名前加上export,将其变为全局变量。ex:export user='hahah'
私有变量:当前用户可以访问;
全局变量:所有用户都可以访问;
Tips:以上默认的都是一次性变量,重启系统会消失
永久变量:
1、本地变量:用户私有,保存在家目录下的.bash_profile、.bashrc文件中;
2、全局变量:所有用户都可以访问,保存在/etc/profile、/etc/bashrc文件中
6.数组
语法:数组名称=(元素1 元素2 元素3 元素4)
ex:
#!/usr/bin/bash
ARRAY1=('a' 'b' 'c')
echo ${ARRAY1[2]}
读取语法:${数组名称[索引]}
Tips: 一次性赋值多个:
1、数组名称=(元素1 元素2 元素3 元素4);
2、ARRAY3=(cat /etc/password) :将该文件每一行作为一个元素赋值给数组ARRAY3
查看已经声明的数组:declare -a
访问数组元素:
1、echo ${array1[0]} 访问数组中第一个元素;
2、echo ${array1[@]} 或 echo {array1[*]} 访问数组中所有元素;
3、echo ${#array1[@]} 统计数组的长度;
4、echo ${!array1[@]} 获取所有数组元素的索引;
5、echo ${array1[@]:1} 从数组的下标1开始,访问所有元素;
6、echo ${array1[@]:1:2} 从数组的下标1元素开始,访问两个元素。
Tips: @、*代表访问所有哦~;
关联数组:关联数组可以允许用户自定义数组的索引!
定义关联数组:declare -A ass_array1,不声明的话就是个基本数组;
ex:
#!/usr/bin/bash
declare -a ARRAY_HH
ARRAY_HH=([name]='ss' [age]=18)
echo ${ARRAY_HH[name]}
访问数组:和基础数组访问元素的格式是一样的
7.数据的比较运算
总结
玩痒痒鼠的有没有,我现在有108张6x太古哇,欢迎来蹭!