• [置顶] shell变量赋值-linux


    Shell变量赋值
    命名须规则:
    1)使用变量无需声明
    2)首个字符必须为字母(a-z,A-Z)
    3)中间不能有空格,可以使用下划线(_)
    4)不能使用标点符号
    5)不能使用bash里的关键字(可用help命令查看保留关键字)
    6)需要给变量赋值时,可以这么写:
    7)变量名=值
    8)一个变量的,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )

    例1:(变量赋值)
    #!/bin/sh 
    # 对变量赋值: 
    a="hello world" #等号两边均不能有空格存在 
    # 打印变量a的值: 
    echo "A is:" $a 
    挑个自己喜欢的编辑器,输入上述内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入./first 执行该脚本。
    其输出结果如下: 
    "A is: hello world "

    例2:(区别变量)
    错误用法:
    有时候变量名可能会和其它文字混淆,比如:
    num=2 
    echo "this is the $numnd" 
    上述脚本并不会输出"this is the 2nd"而是"this is the"
    这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。

    正确用法:
    num=2 
    echo "this is the ${num}nd" 
    其输出结果为:
    "this is the 2nd"
    [
    注意: 花括号的位置?
    num=2 
    echo "this is the {$num}nd" 
    其输出结果为:this is the {2}nd
    ]

    例3:(变量值作为数字)
    需要注意shell的默认赋值字符串赋值
    错误方式:
    var=1 
    var=$var+1 
    echo $var 
    打印出来的不是2而是1+1
    正确方式:
    1)let "var+=1" 
    2)var=$[$var+1]   
    3)var=`expr $var +1`#注意加号两边的空格,否则还是按照字符串的方式赋值。[暂时无效] 
    echo $var 打印出来是2
    注意:前两种方式在bash下有效,在sh下会出错。[注意:我的虚拟机中:/bin/sh->/bin/bash]
    let表示数学运算;
    $[]将中括号内的表达式作为数学运算先计算结果再输出;
    expr用于整数值运算,每一项用空格隔开;[暂时无效]


  • 相关阅读:
    csuoj 1391: Boiling Vegetables
    csuoj 1392: Number Trick
    nyist 78 圈水池
    1393: Robert Hood 旋转卡壳 凸包
    模板 旋转卡壳 凸包
    模板 凸包 旋转卡壳
    ASP.NET Web API2返回值处理流程
    DependencyInjection源码解读之ServiceProvider
    深入研究EF Core AddDbContext 引起的内存泄露的原因
    私有云方案——利用阿里云云解析实现DDNS
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3359838.html
Copyright © 2020-2023  润新知