zoukankan      html  css  js  c++  java
  • 重新点亮shell————变量[三]

    前言

    简单介绍一下shell的变量。

    正文

    1. 变量的定义

    变量名的命名规则

    1. 字母、数字、下划线

    2. 不以数字开头

    3. 变量的赋值

    在赋值的时候不能出现空格 a =123,在等号前面有一个空格,那么会报错。

    这是因为空格之后当做另外一条命令。

    然后可以使用let 进行复制,let a=10+20 这个可以进行计算复制。

    同样如果想要命令赋值,可以这样 l=ls,那么后面l就表示了ls的意思。

    将命令结果赋值给变量,使用$()或者``.

    使用let c=$(ls -l /etc)

    变量有空格等特殊字符可以包含在""或者''中。

    1. 变量的引用

    例子:

    string1="hello word"
    echo ${string1}
    或者
    echo $string1
    
    1. 变量的作用范围

    变量的作用范围,默认为当前的shell为变量的作用范围。

    这里有一个例子,当复制为a=1,然后使用bash,开启了一个子shell,然后发现无法访问a了,说明子shell和父shell不互通变量。

    那么如果想两个脚本变量互通怎么办?source x.sh,这样就可以了。

    1. 系统环境变量

    那么如果想让子shell和父shell互通变量怎么办?可以使用export来实现。

    export 其实这就全局了的意思了,那么如果用完之后最好unset去删除。

    这其实就是环境变量了,那么可以通过env来查看一下。

    说起环境变量,那么$Path 是比较重要的,可以自我了解一下。

    然后还有一个就是ps1了。

    这个就是我们显示的了。

    预定义变量: $?、$$、$0

    就简单介绍一下这三个。
    $? 表示上一条命令是否正确执行,正确的就是0了,其他都是错误的。

    $$ 表示当前进程的pid

    $0 为当前进程的名称:

    位置变量:$1 $2 $3

    这些表示的是第几个变量的意思。

    然后关于默认值的问题:${2-_}

    这个意思是如果2没传的话,那么默认就是_。

    1. 环境变量配置文件

    配置文件有:

    1. /etc/profile

    2. /etc/profile.d/

    3. ~/.bash_profile

    4. ~/bashrc

    5. /etc/bashrc

    这里有很多配置文件,但是这些文件还是有区别的。

    比如在etc目录下的,那么就是所有用户通用的了。

    那么这里可以看到有profile的,也有没有profile的。

    su [user]切换到其他用户,但是不切换环境变量,su - [user]则是完整的切换到新的用户环境。

    如果使用,su - [user],那么切换的时候会加载/etc/profile ~/.bash_profile ~/bashrc /etc/bashrc 执行顺序也是如此,这个还是比较关键的,毕竟后面的执行顺序要大于前面的。

    如果使用su [user] 那么只会加载~/bashrc /etc/bashrc。

    通用需要了解的是当我们修改完配置后,配置是不会立即生效的,如果想让其立即生效,那么可以使用source这个命令,进行重新加载。

    下一节就介绍具体的语法了。

  • 相关阅读:
    Windows——bat中的路径和工具栏运行bat的坑
    KBE——查询
    KBE实践——登录案例
    KBE_运作流程
    KBE_创建项目和基本常识
    python_面向对象
    程序员常见面试之 数据库 知识点小结(三)
    C#编程总结
    人人必知的10个 jQuery 小技巧
    Javascript生成二维码(QR)
  • 原文地址:https://www.cnblogs.com/aoximin/p/15732062.html
Copyright © 2011-2022 走看看