zoukankan      html  css  js  c++  java
  • Shell学习——变量

    1、在Bash中,每一个变量的值都是字符串
    2、查看某个进程的环境变量
    cat /proc/$PID/environ | tr '' ' '
    3、变量赋值
    3.1、var=value,注意var = value不是赋值操作,而是相等操作
    3.2、若value包含任何空白字符,则必须使用单引号或者双引号
    4、打印变量
    [root@client02 978]# var=value
    [root@client02 978]# echo $var
    value
    [root@client02 978]# echo ${var}
    value
    5、在echo或printf中若要引用变量,则要使用双引号
    [root@client02 1]# fruit=apple
    [root@client02 1]# echo "we have five $fruit(s)"
    we have five apple(s)
    6、环境变量
    6.1、环境变量是未在当前进程中定义,从父进程继承过来的变量
    6.2、export用来设置环境变量,设置之后,从当前shell脚本执行的任何应用程序都会继承这个变量
    6.3、在给出所要执行的命令后,shell会自动在PATH环境变量所包含的目录列表中,查找对应的可执行文件
    7、获得变量长度
    [root@client02 1]# var=124hello
    [root@client02 1]# length=${#var}
    [root@client02 1]# echo $length
    8
    [root@client02 1]# echo ${#var}
    8
    8、常用环境变量
    [root@client02 1]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    [root@client02 1]# echo $HOME
    /root
    [root@client02 1]# echo $SHELL
    /bin/bash
    [root@client02 1]# echo $UID
    0
    9、set、env和export的区别
    9.1、set显示当前shell的变量(私有变量),包括当前用户的变量,不同类的shell有不同的私有变量,bash、ksh、csh的shell私有变量都不同
    9.2、env显示当前用户的变量
    9.3、export显示当前导出成用户变量的shell变量
    10、通过设置PS1变量可以设置Bash提示字符串
    11、使用函数添加环境变量
    [root@client02 ~]# prepend() { [ -d "$2" ] && eval $1="$2':'$$1" && export $1; }
    [root@client02 ~]# T1=/home
    [root@client02 ~]# prepend T1 /root
    [root@client02 ~]# echo $T1
    /root:/home
    但若是T1初始值为空,结果如下
    [root@client02 ~]# T1=
    [root@client02 ~]# echo $T1
     
    [root@client02 ~]# prepend T1 /root
    [root@client02 ~]# echo $T1
    /root:
    需要增加一个判断,引入shell参数扩展的形式
    ${param:+expr}
    若param有值且不为空,则使用expr的值
    [root@client02 ~]# prepend() { [ -d "$2" ] && eval $1="$2${$1:+':'$$1}" && export $1; }
    [root@client02 ~]# T1=
    [root@client02 ~]# prepend T1 /root
    [root@client02 ~]# echo $T1
    /root
  • 相关阅读:
    浅谈最长上升子序列(LIS)
    浅谈树链剖分
    数字计数
    windy数
    骑士(树形dp)
    旅游规划
    皇宫看守
    k8s安装报错
    linux文件夹存储潜规则
    搭建覆盖率测试环境
  • 原文地址:https://www.cnblogs.com/pigwan7/p/9626869.html
Copyright © 2011-2022 走看看