6. 变量
主要有环境变量、状态变量、位置参数变量、自定义变量,调用变量时,要在变量前面加一个$ 符号
环境变量
环境变量是用于存储有关 shell 会话和工作环境的系统变量。常见环境变量:
$HOME 当前用户的主目录
$PATH shell查找命令的目录列表,由冒号(:)分隔。
$SHELL bash shell的全路径名
$LOGNAME 当前用户的登录名
$PS1 shell命令行界面的提示符
比如:修改 $PS1 变量,可以修改命令行的配色,如运行下面这一句:
PS1="\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\]"
可以告别黑白命令行,将命令行的配色修改为:
最常用的应该是 $PATH
变量,记录了若干个可执行文件的保存目录,每次输入命令时 Linux 系统会去 $PATH 里面记录的路径查找相关的命令。
第一种方法:直接修改 $PATH,即在原来的
$PATH
的基础上添加上要增加的可执行文件所在的目录。这只是临时修改的环境变量,即重新登录或重新激活环境后会失效。PATH=/home/vip1/biosoft/bowtie2-2.3.3.1-linux-x86_64/:$PATH
第二种方法:如果想让上述永久生效,将此命令添加到 ~/.bashrc 中即可。(注:~/.bashrc 该文件是一个配置文件,包含专用于你的 shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该文件被读取和执行。)
echo 'export PATH="/home/vip1/biosoft/bowtie2-2.3.3.1-linux-x86_64/:$PATH"' >> ~/.bashrc
状态变量
用于记录命令的运行结果,主要有以下几个(最常用的是 $? ):
状态变量 | 作 用 |
---|---|
$? | 获取执行上一个指令的执行状态返回值,返回0表示上一个命令或者程序执行成功,返回的值为非0则表示上一个命令执行失败。 |
$$ | 获取当前执行的shell脚本的进程号PID。 |
$! | 获取上一个后台工作的进程的进程号PID。 |
$_ | 获取在此之前执行的命令或脚本的最后一个参数。 |
位置参数变量
用于用于向命令或程序脚本中传递信息,主要有以下几个:
位置参数变量 | 作 用 |
---|---|
$n | n 为数字,$0 代表命令本身,$1〜$9 代表第 1〜9 个参数,10 以上的参数需要用大括号包含, 如${10} |
$* | 这个变量代表命令行中所有的参数,把所有的参数看成一个整体 |
$@ | 这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区别对待 |
$# | 这个变量代表命令行中所有参数的个数 |