• 大数据之Shell编程(一) Shell变量


    1.Shell中的变量

    Shell中的变量分为系统变量用户变量,可以通过set命令查看有哪些变量可以使用
    系统变量比如:$HOME $PWD $SHELL $USER等等

    2.变量的定义

    变量=值 (例如STR=abc) 注意:=两边不能含有空格
    变量一般使用大写,当然不是硬性规定

    双引号和单引号区别:双引号仅仅将空格等脱意,而单引号会将所有的特殊字符脱意

    >>> STR=abc
    >>> echo "hello $STR"
    >>> hello abc
    >>> echo 'hello $STR'
    >>> hello $STR
    

    可以使用unset撤销变量

    >>> unset STR
    

    可以使用readonly声明只读变量

    >>> readonly B=2  # 声明静态变量,不能进行unset操作,使用频率极低
    

    可以使用export将一个变量提升为环境变量,提供给其它的Shell使用

    >>> export JAVA_HOME=/user/java
    

    3.将一个命令的返回值赋予一个变量

    • A=`ls -al` 使用反引号将命令包裹
    • 上面的等同于 A=$(ls -al)
    >>> A=`wc -c helloworld.sh`
    >>> echo $A
    >>> 90 helloworld.sh
    >>> B=$(wc -c helloworld.sh | cut -d ' ' -f1) # cut表示已' '分割去除第一个参数(f1)
    >>> echo $B
    >>> 90
    

    4.Shell中的特殊变量

    • $? 表示上一条命令退出的状态(0 表示成功 ,非0表示失败 ,范围为0~255)
    • $$ 表示当前进程编号
    • $0 表示当前脚本的名称
    • $n 表示位置变量(n表示数字,n>=1)
    • $# 表示变量的个数
    • $*和$@都表示参数列表

    $和$@的区别
    "$
    "表示"$1 $2 .... $n"
    "$@"表示"$1" "$2" "$3"
    也就是添加引号后$*的会是一个字符,他会将所有的参数进行连接,而$@不会

    >>> ls
    >>> echo $?
    >>> 0
    
  • 相关阅读:
    TCP与UDP的差别以及TCP三次握手、四次挥手
    MAC帧格式、IPV4数据报格式、TCP报文格式、UDP数据报格式
    维特比算法(Viterbi)-实例讲解(暴力破解+代码实现)
    对ajax的理解
    get与post两种方式的优缺点
    什么是Ajax和JSON,它们的优缺点
    浅谈一下如何避免用户多次点击造成的多次请求
    ajax是什么?
    同步和异步的区别?
    如何解决跨域问题
  • 原文地址:https://www.cnblogs.com/wuqinghua-blog/p/10492929.html
Copyright © 2020-2023  润新知