自定变量
输出变量
echo ${myname}
#or
echo $myname
设置变量
所有的变量设置仅仅在当前的shell
中有效,如果想对所有的进程生效,需要将该变量设置成为环境变量
myname=fanyank
双引号
使用双引号可以引用之前设置过的变量
myinfo="name:${myname} age:18"
#print the variable myinfo
name:fanyank age:18
单引号
使用单引号把变量的值当做字符串处理, 不能引用之前的变量
myinfo='name:${myname} age:18'
#print the variable myinfo
name:${myname} age:18
应用场景
比如你需要经常性的访问某个文件夹,而这个文件夹又不太好找,因此你可以使用变量功能给这个文件的路径起个别名
PigDoc=/Users/yanfeng-mac/Documents/需求迭代/PigDoc
#下次在任何位置进入这个目录只需要键入
cd ${PigDoc}
环境变量
环境变量和变量的区别就是环境变量对所有的进程都有效,变量仅仅对当前的进程bash
有效
查看
使用env
查看本机中所有的环境变量
env
e.g. 你想查看本机使用的是什么版本的shell
,一般Linux
都为bash(Brounce Again SHell)
, Mac OS
多为zsh
env | grep SHELL
e.g. 一般我们键入cd ~
就可以回到我们个人的工作目录里了,是因为我们在环境变量中设置了HOME
这个变量,来看看它的值是否和我们的工作目录一致呢
env | grep HOME
e.g. 跑Java
程序我们少不了要配置PATH
环境变量,该环境变量的作用就是使得我们能在任何目录下执行各种命令
env | grep PATH
所有变量
SET
使用set
命令查看环境变量和用户自定变量
set
e.g. 查看PS1
变量,此变量即为我们输入命令时最左侧的命令提示符,大概长这个样子[root@fanyank ~]#
,我们可以键入man bash
查看PS1
的变量的参数,并且进行更改
set | grep PS1
e.g. $
本身也是一个变量,它本身代表当前进程bash
的PID
,查看当前进程的PID
echo ${$}
# or
echo $$
e.g. 查看上一个命令的返回值,一般一个命令正常被执行的返回值都是0
,只有在执行出错的的情况下才会返回不为0
的code,使用?
变量查看上一个命令的返回值
12fanyank=111
echo ${?}
# print 127
自定变量转环境变量
export
使用export
命令将变量设置成为环境变量,以便各个进程都可以使用
export myinfo
#可以输入bash开启一个新的进程验证下
e.g. 新建一个变量myinfo
,然后将这个升级为环境变量
myinfo='fanyank 18'
export myinfo
Alias别名-为你的快捷操作更进一步
使用alias
命名可以查看本机中所有设置的别名命令
alias
e.g. 将检查/export
目录下大于100M
文件的命令du -h /export | grep -E "[1-9]{3,}M"
设置别名为searchBigFile
alias searchBigFile='du -h /export | grep -E "[1-9]{3,}M"'
e.g. 将上次的别名取消
unalias searchBigFile