zoukankan      html  css  js  c++  java
  • [置顶] 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用于整数值运算,每一项用空格隔开;[暂时无效]


  • 相关阅读:
    HDU 5912 Fraction (模拟)
    CodeForces 722C Destroying Array (并查集)
    CodeForces 722B Verse Pattern (水题)
    CodeForces 722A Broken Clock (水题)
    CodeForces 723D Lakes in Berland (dfs搜索)
    CodeForces 723C Polycarp at the Radio (题意题+暴力)
    CodeForces 723B Text Document Analysis (水题模拟)
    CodeForces 723A The New Year: Meeting Friends (水题)
    hdu 1258
    hdu 2266 dfs+1258
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3359838.html
Copyright © 2011-2022 走看看