zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    C语言的指针
    C语言的编译过程和GCC编译参数
    GCC编译器的安装
    全字段多条件搜索(api接口)
    C# Replace字符替换函数
    NetCore MemoryCache使用
    vs2017 C# ActiveX浏览器插件 创建 发布 C# windows窗体控件库(.NET Framework)注意事项
    [Asp.net core 3.1] 通过一个小组件熟悉Blazor服务端组件开发
    [AspNetCore 3.0 ] Blazor 服务端组件 Render, RenderFragment ,RenderTreeBuilder, CascadingValue/CascadingParameter 等等
    [AspNetCore 3.0] 在RazorPages/MVC 中使用 Blazor (Razor组件)
  • 原文地址:https://www.cnblogs.com/liulipeng/p/3337110.html
Copyright © 2011-2022 走看看