文章标题
来源:互联网 发布:西门子usb编程电缆 编辑:程序博客网 时间:2024/06/09 19:55
变量替换
变量的名字就是变量保持值的地方,引用变量的值就叫做变量替换。
- $var
- ${var}
- “$var”
- “${var}”
变量替换和引用的方式,其中在““中发生变量替换,叫部分引用,在‘ ‘中就不会发生变量替换,叫全引用。
注意:\$var 与\${var}的区别,不加{},在某些上下文将引起错误
#!/bin/bash hello="A B C D" echo $hello #A B C D echo ${hello} #A B C D echo "$hello" #A B C D echo "${hello}" #A B C D # echo \$hello和 echo "$hello" 结果不同 # 引用一个变量将保留其中的空白,当然,如果是变量替换就不会保留了 echo '$hello' #$hello #全引用则是把$变成一个单独的字符
变量赋值
- =
- let
- read方式
- $(…)
- ` `
#!/basha=375echo $a b=$aecho $b#命令结果赋值a=`echo $hello!` #将echo 命令的结果传给变量aecho $aa=`ls -l`echo "$a" #保留a中的空格和换行#letlet a=16+515 echo "The value of \"a\" is now $a."# 在for循环中echo -n "Values of \"a\" in the loop are: "for a in 7 8 9 11doecho -n "$a "doneecho# 在 read 命令状态中echo -n "Enter \"a\" "read aecho "The value of \"a\" is now $a."echo #$()R=$(cat /ect/redhat-release)arch=$(uname -m)echo $Recho $arch
变量是不分类型的
变量不区分类型,都是字符串。但是依赖于上下文,Bash 也允许比较操作和算术操作.决定这些的关键因素就是,变量中的值 是否只有数字。
特殊变量类型
- local variables
这种变量只有在代码块或者是函数中才可见(具体见 23.2 和 23 章) - environmental variables
这种变量将改变用户接口和 shell 的行为
用户变量:每次当 shell 启动时,它都将创建自己的环境变量.更新或者添加新的环境变量,将导 致 shell 更新它的环境,同时也会影响所有继承自这个环境的所有子进程(由这个命令 导致的).
如果一个脚本设置了环境变量,需要 export 它,脚本只能对它产生的子进程 export 变量.一个从命令行被调用的脚本 export 的变量,将 不能影响调用这个脚本的那个命令行 shell 的环境. - positional parameters
就是从命令行中传进来的参数,$0, $1, $2, $3
$0 就是脚本文件的名字,$1 是第一个参数,$2 为第 2 个…,$9 以后就需要打括号了,如10, {11},${12}…
\$*和\$@
#!/bin/bash#调用这个脚本需要10个参数,如 ./scriptname 1 2 3 4 5 6 7 8 9 10MINPARAMS=10echo "This name of scriptname is \"$0\"."echo "This name of scriptname is \"`basename $0`\"."
{}标记法是一种很好的使用位置参数的方法.这也需要间接引用
1. args=$# 位置参数的个数
2. lastarg=${!args}
3. # 或: lastarg=${!#}
4. # 注意 lastarg=${!$#} 将报错
退出和退出状态
- exit 通常成功返回0,非0 错误码
- exit $? 一个脚本以不带参数 exit 来结束时,脚本的退出状态就由脚本中最后执行命令来决定
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 【模板】乘法逆元
- Java基础语法
- effective cpp 读书笔记2
- 最长公共子序列 python
- 图片上传
- 文章标题
- 视频调色软件(colordirector 6) v6.0.2028中文免费版
- 数据库三级模式
- 使用playframework实现简单的增删改查
- 三大框架整合struts+spring+mybatis
- 23种设计模式全解析
- ssh scp出现 Permission denied (publickey,gssapi-with-mic,gssapi-keyex)问题
- Java对象和类
- jformdesigner(Swing设计工具)下载 v5.2免费版