• shell学习笔记之变量(一)


    一、普通变量

    1.使用变量之前通常并不需要事先声明,通常赋值的时候创建他们
    2.默认所有的变量都被看做字符串,并且以字符串存储
    3.变量区分大小写
    4.变量名前面添加$符号来访问变量,赋值的时候只需要使用变量名
    5.如果字符串中包含空格,就必须用引号括起来
    6.等号两边不能有空格

    #!/bin/sh
    
    myvar="Hi there"
    
    echo $myvar
    echo "$myvar"
    echo '$myvar'    #不会发生替换
    echo $myvar    #不会发生替换
    
    echo Enter some text
    read myvar
    echo '$myvar' now equals $myvar
    
    salutation=7+5
    
    exit 0
    
    $./variable
    Hi there
    Hi there
    $myvar
    $myvar
    Enter some text
    
    输入:Hello World
    $myvar now equals Hello World
    
    7+5

    二、环境变量和参数变量

    $0                shell脚本的名称
    $1, $2,...        脚本程序的参数
    $#                传递给脚本的参数的个数
    $*                在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分割开。
                    如果IFS被修改了,那么$*将命令行分割为参数的方式也会改变。
    $@                $*的一个变体,不适用IFS变量,即使IFS为空,参数也不会挤在一起。        
    $$                脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件,如/temp/tempfile_$$

    $HOME            用户的家目录
    $PATH            冒号分割的用来搜索命令的目录列表
    $PS1            命令提示符,通常是$字符,在bash中可以设置更复杂的值,比如:[u@h W]$就是一个流行的默认值,
                    给出用户名、机器名、当前目录名、提示符$
    $PS2            二级提示符,用来提示后续的输入,通常是>字符
    $IFS            输入域分隔符,读取输入时,它给出用来分割单次的一组字符,通常时候空格,换行符,制表符


    $@和$*的区别

    $ IFS=''
    $ set foo bar bam
    
    $ echo "$@"
    foo bar bam
    
    $ echo "$*"
    foobarbam
    
    $ unset IFS 
    
    $ echo "$*"
    foo bar bam
  • 相关阅读:
    精选30道Java笔试题解答
    ASM
    Java Decompiler Plugin For Eclipse IDE
    AMQ5540, AMQ5541 and AMQ5542, application did not supply a user ID and password, 2035 MQRC_NOT_AUTHORIZED
    Shell脚本中的export
    Linux set unset命令
    shell中${}的妙用
    ubuntu alsa2
    ubuntu alsa
    计算机启动boot
  • 原文地址:https://www.cnblogs.com/liulipeng/p/3337110.html
Copyright © 2020-2023  润新知