Shellshell脚本中的变量
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shellshell脚本中的变量相关的知识,希望对你有一定的参考价值。
目录
一、变量的定义
1.定义
变量就是内存一片区域的地址
2.变量存在的意义
命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标可以解决此问题
二、shell脚本中变量的定义方法
1.环境级别
export a=1
在环境关闭后变量失效
2.用户级别
vim ~/.bash_profile
export a=1
3.系统级别
vim /etc/profile
export a=1
vim /etc/profile.d/westos.sh一般在/etc/profile.d/目录中编辑一个文件
export b=1
4.取消
5.PS执行命令的提示符
三、变量
1. 变量名称可包含的字符
字母 / 下划线_ / 数字
2. 变量名称定义规则
不能用数字开头
3. 建议
变量名称短全用大写字符:
WESTOS
变量名称长用_区分子类:
Westos_Linux
westoS_Linux
4. 变量的转译
\\ #转译单个字符
"" #弱引用,批量转译,不能转译"\\" "" "$" "!"
'' #强引用
5. 变量的声明
a=1
echo $ab
echo ${a}b #a是变量,对a做变量声明
6. 变量的数组
echo $a ##默认输出数组第一个元素
echo ${a[0]} ##数组中第一个元素
echo ${a[-1]} ##数组中最后一个元素
echo ${a[*]} ##数组中所有元素
echo ${a[@]} ##数组中所有元素
echo ${#a[@]} ##数组中元素的个数
echo ${a[@]:0:2} ##数组中0后面排两个元素
echo ${a[@]:5:3} ##5后面排3个元素,5后面只有1个
不能有负数
unset a[0] ##删除数组的第一个元素
a[0]=1 ##添加数组的第一个元素1
四、Linux中命令的别名设定
1.环境级别
2.用户级别
3.系统级别
切换其他用户也生效
4.取消
五、用户环境变量的更改
用户级别:vim ~/.bash_profile 中 加入:/mnt
取消:
六、脚本函数
1. 直接利用命令执行结果
$ ; () ; | ; " "
##这四种优先执行
TEST=`hostname’ 等同于 TEST=$(hostname)
2. 脚本中的传参
非交互模式: 没有回应直接给出结果
$0 is westos3.sh <脚本本身>
$1 is jiaojiao <脚本后所输入的第一串字符>
$2 is sun <脚本后所输入的第二串字符>
$* is jiaojiao sun <脚本后所输入的所有字符 “linux haha 123”>
$@ is jiaojiao sun <脚本后所输入的所有字符 ‘linux’ ‘haha’ ‘123’>
$# is 2 <脚本后所输入的所有字符串个数>
交互模式传参: 有回应
read WESTOS ##对westos赋值
read -p “please input word:” ##输出提示语
s ##隐藏输入内容
echo -e “\\n” ## -e 执行动作,"\\n"多一行
“”
3. 脚本函数
定义: 程序的别名
设定方式:
WORD()
{ action1
action2
}
WORD 在脚本中就代表action1 action2这两个动作
(一)调用WESTOS函数
(二) 调用WESTOS函数,并循环WESTOS
(三)调用WESTOS函数,并循环WESTOS,输入 exit 退出
练习脚本
sh create_user.sh
Please input username: westos
westos exist westos is exist Please input username:
westos not exist please input password: 无回显密码
此用户会自动建立并且密码为提示后设定的密码
并显示: westos is created
并再次提示 Please input username:
当Please input username: exit 此脚本退出
脚本思路
测试:
以上是关于Shellshell脚本中的变量的主要内容,如果未能解决你的问题,请参考以下文章