shell 脚本中变量的定义方法
- 环境级别
export a=1
在环境关闭后变量失效
- 用户级别
vim ~/.bash_profile
*****************************************************************************
export a=1
- 系统级别
vim /etc/profile
*****************************************************************************
export a=2
*****************************************************************************
vim /etc/profile.d/song.sh
*****************************************************************************
export b=3
变量名称规则
变量名称可以包含字母、下划线、数字,但是不能用数字开头
建议名称短时全部使用大写字符,名称长时用_
区分子类
变量的转译
-
转译
\ #转译单个字符 "" #弱引用,批量转译个数字符 不能转译"\ " "" "$" "!" '' #强引用
-
声明
a=1 echo $ab echo ${a}b
-
变量数组
a=(1 2 3 4 5) a$[a[@]:起始元素id:元素个数] unset a[n] ##删除数组中的第n1个元素 unset a ##删除a这个数组
Linux中命令的别名设定
alias xie=‘vim’ ##临时设定
vim ~/.bashrc
alias xie=‘vim’ ##只针对与用户生效
vim /etc/bashrc ##针对系统所以用户生效
alias xie=‘vim’
unalias xie ##删除当前环境中的alias
用户环境变量的更改
设定方式:
~/.bash_profile
export PATH=
P
A
T
H
:
/
m
n
t
/
e
t
c
/
b
a
s
h
p
r
o
f
i
l
e
e
x
p
o
r
t
P
A
T
H
=
PATH:/mnt /etc/bash_profile export PATH=
PATH:/mnt/etc/bashprofileexportPATH=PATH:/mnt
脚本中的传参
-
直接利用命令执行结果
$()| ##优先执行 TEST=hostname TEST=$(hostname)
-
脚本中的传参
- 非交互模式传参
$0 #脚本本身 $1 #脚本后输入的第1串字符 $2 #脚本后输入的第2串字符 $3 #脚本后输入的第3串字符 $* #脚本后输入的所有字符(整体展示) $@ #脚本后输入的所有字符(分开展示) $# #脚本后输入的字符串个数
vim 123.sh
- 交互模式传参
read SONG #对SONG进行赋值 read -p "xxxxxx" -s "xxxxx" #输出提示语并隐藏输入内容 ************************************************************************* -p #打印输出 -s #隐式输入(不显示输入)
练习
题目1:sh create_user.sh
Please input username: westos
westos exist> westos is exist>Please input username:
westos not existplease input password: 无回显密码file_c.sh
此用户会自动建立并且密码为提示后设定的密码
并显示:westos is created
并再次提示Please input username:
当Please input username:exit
此脚本退出
题目2:sh check_file.sh
输入文件名:
若文件不存在,输出不存在后返回提示输入文件名:
多文件存在,输出文件类型后返回提示输入文件名:
输入内容为exit时,退出脚本