6. 变量

主要有环境变量、状态变量、位置参数变量、自定义变量,调用变量时,要在变量前面加一个$ 符号

环境变量

环境变量是用于存储有关 shell 会话和工作环境的系统变量。常见环境变量:

  1. $HOME 当前用户的主目录
  2. $PATH shell查找命令的目录列表,由冒号(:)分隔。
  3. $SHELL bash shell的全路径名
  4. $LOGNAME 当前用户的登录名
  5. $PS1 shell命令行界面的提示符

比如:修改 $PS1 变量,可以修改命令行的配色,如运行下面这一句:

  1. 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\]"

可以告别黑白命令行,将命令行的配色修改为:
image.png

最常用的应该是 $PATH 变量,记录了若干个可执行文件的保存目录,每次输入命令时 Linux 系统会去 $PATH 里面记录的路径查找相关的命令。

  • 第一种方法:直接修改 $PATH,即在原来的 $PATH 的基础上添加上要增加的可执行文件所在的目录。这只是临时修改的环境变量,即重新登录或重新激活环境后会失效。

    1. PATH=/home/vip1/biosoft/bowtie2-2.3.3.1-linux-x86_64/:$PATH
  • 第二种方法:如果想让上述永久生效,将此命令添加到 ~/.bashrc 中即可。(注:~/.bashrc 该文件是一个配置文件,包含专用于你的 shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该文件被读取和执行。

    1. 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}
$* 这个变量代表命令行中所有的参数,把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区别对待
$# 这个变量代表命令行中所有参数的个数