zoukankan      html  css  js  c++  java
  • Linux Shell编程变量赋值和引用

    我们可以使用任意一种文字编辑器,比如gedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):
     
    #!/bin/sh 
    ... 
    注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh,其他类似。  
    符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh。编辑结束并保存后,如果要执行该脚本,必须先使其可执行:
     
    chmod +x filename 
    此后在该脚本所在目录下,输入 ./filename 即可执行该脚本。
     
    Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
     
    首个字符必须为字母(a-z,A-Z)
    中间不能有空格,可以使用下划线(_)
    不能使用标点符号
    不能使用bash里的关键字(可用help命令查看保留关键字)
    需要给变量赋值时,可以这么写:
     
    变量名=值
    要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )
     
    #!/bin/sh 
    # 对变量赋值: 
    a="hello world"  #等号两边均不能有空格存在 
    # 打印变量a的值: 
    echo "A is:" $a 
    挑个自己喜欢的编辑器,输入上述内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入 ./first 执行该脚本。其输出结果如下: 
     
    A is: hello world 
    有时候变量名可能会和其它文字混淆,比如:
     
    num=2 
    echo "this is the $numnd" 
    上述脚本并不会输出"this is the 2nd"而是"this is the ";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量:
     
    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
    需要注意shell的默认赋值是字符串赋值。比如:
     
    var=1 
    var=$var+1 
    echo $var 
    打印出来的不是2而是1+1。为了达到我们想要的效果有以下几种表达方式:
     
    let "var+=1" 
    var=$[$var+1]     
    var=`expr $var + 1`#注意加号两边的空格,否则还是按照字符串的方式赋值。 
    注意:前两种方式在bash下有效,在sh下会出错。
     
    let表示数学运算,expr用于整数值运算,每一项用空格隔开,$[]将中括号内的表达式作为数学运算先计算结果再输出。
     
    Shell脚本中有许多变量是系统自动设定的,我们将在用到这些变量时再作说明。除了只在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处理过的变量 详情参
  • 相关阅读:
    NTDLL未文档化函数RtlGetNtVersionNumbers获取操作系统版本
    FormatMessage与GetLastError配合使用,排查windows api调用过程中的错误
    [翻译]:怎样从C/C++代码中对C#进行回调
    解决libcurl7.50.3在windows XP SP3 VC++ 6.0下编译报错 unresolved external symbol __imp__IdnToAscii@20 unresolved external symbol __imp__IdnToUnicode@20
    Windows XP SP3 VC6环境下成功编译openssl-0.9.8zh
    Windows XP SP3下编译安装openssl-1.1.0b
    Ubuntu关闭自动更新
    IDEA中分析JVM堆导出文件heapdump-1591244153347.hprof文件
    Linux环境下非root用户通过防火墙nat将端口转发到8080端口
    Linux自定义java程序运行脚本的命令
  • 原文地址:https://www.cnblogs.com/wq920/p/4993996.html
Copyright © 2011-2022 走看看