shell编程(2) 变量

查看全部的全局变量:env 或 printenv
全局变量可以用于进程的所有的子进程
#!/bash/profile #
#!用来表示该文件是可执行的 shell 脚本,/bin/profile是指定要使用的 Shell,也就是命令解释器,即用于执行脚本的程序

三种创建全局变量的方式

  1. export 变量名=value

  2. 变量名=value;export 变量名 #此方法首先定义了一个局部变量,之后导入到全局变量中

  3. declare -x 变量名=value
    ps:对于全局变量来说,在子 shell 中修改全局的变量值,这不会影响到父shell

环境变量的永久化

当你想要在当前目录下执行该目录下的可执行文件,执行如果报错,那么究其原因极有可能就是:该命令的可执行文件的目录不在 PATH 环境变量所包含的目录中

  1. 向 PATH 添加新的路径的方法,且该方法是临时方法

    echo $PATH #输出看一下当前的PATH

    PATH=$PATH:路径 #向PATH中添加新的路径

  2. 在 ~/.bash_profile 中直接修改,记得修改之后一定要 source 一下让其生效

alias 的使用

alias 可以重新定义本来的 shell 命令,直接在终端上输入 alias可以查看当前 shell 中所有现有的别名
例:alias aaa='echo "hello world"; ls'
将别名持久化,用户需要在其 ~/.bashrc 中修改,记得用 source 一下让其生效

命令替换

含义:在shell中,我们可以将输出赋予给变量。
例子:

echo "today:`date`"
输出:today:Thu Feb 16 14:45:28 CST 2023
echo "today:$(date)"    #注意这里的()是必须有的
today:Thu Feb 16 14:47:00 CST 2023

综上所述,有两种方法可以将命令输出赋予给变量

  • 使用反引号 ``
  • 使用 $()

echo输出

转义字符\可以取消紧跟在该字符后面的单个字符的特殊含义,**单引号保留**其括起的==所有字符==的**字面含义**。我们可以这样理解,当语句中需要使用多个特殊字符的字面含义时,需要使用大量的转义字符,这样很麻烦,单引号的出现就解决了这个麻烦。与单引号不同,**双引号的区别在于双引号不保留**美元符号==$==、反引号==``==和反斜杠==\\==的字面值,即 使用**双引号**括起时,美元符号和反引号**保留其特殊含义**,并且仅当反斜杠前面是 $ 、反引号、双引号、反斜杠或换行符时,才会保留反斜杠字符的特殊含义。(单引保留,双引不保留)

echo 命令可用单引号或双引号来划定文本字符串
echo "it's me.ok" 结果:it's me.ok
echo it's' me.ok 结果:its me.ok

环境变量和用户变量

  1. 环境变量使用时在名称前加上 $ 即可;
    echo "I am $year years old" $year=18

  2. 用户变量
    用户的变量可以是任何由字母、数字或下划线组成的文本字符串,长度不能超过 20,用户的变量区分大小写。在变量使用时,我们是通过使用$VARIABLENAME 这种方式来引用 VARIABLENAME 的值。$VARIABLENAME 语法是用花括号括起。

    first_=Jane
    last_name=rose
    echo $first_$last_name
    输出:Janerose
    

加上{}之后:

first_=Jane
last=rose
echo ${first}_$last
输出:Jane_rose
posted @ 2023-02-14 14:59  by1314  阅读(29)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end