linux中echo引⽤变量值,shell脚本学习之⼀------let,echo,变量⾸先看到好多以这样开头的 #!/bin/bash 这个是告诉系统 解释此脚本⽂件的Shell程序
# 这个是注释⾏,当⾏有效
脚本程序⼀般⽤ xx.sh ⽂件表⽰,这样⼀样就可以看出⽂件的属性,当然也可以不这样
⼀个脚本程序写完后,如果要执⾏它,则必须先赋+x 执⾏权限给它
例如:chmod +x xx.sh,然后⽤命令 ./filename 执⾏
以下是⼀些知识点:
1. echo :⽤于显⽰(不带参数,如果有多⾏则换⾏输出) 例如:echo "hello shell"
如果加上参数 -n 表⽰如果有多⾏的话,将不换⾏输出
点击(此处)折叠或打开
#!/bin/bash
# filename is while.sh
count=0
while(($count < 5 ))
do
echo -n " count=" $count
let count=count+1
done顺便说⼀句,linux提供2中命令:⼀种是内部命令,⼀种是外部命令。解释执⾏内部命令要⽐外⾯命令快的 多, 同时,解释内部命令时候,shell不需要创建⼦进程,⽽外部命令则需要创建⼦进程,这就增⼤了系统的开销。查看是不是内部命令,可以⽤如下命令:type command 例如:type echo
2.$xx表⽰引⽤变量:如上⾯的代码中,第三⾏定义了变量count, 第四⾏,第六⾏ $count 则引⽤该变量。
3. 位置变量: $0 ⽂件名,$1 第⼀个参数 $2 第⼆个参数
点击(此处)折叠或打开
#!/bin/bash
#filename is first.sh
#have 3 parameter to first.sh
#command is: ./first.sh 1 2 3
# $#:传⼊脚本的参数个数
# $*:显⽰所以的参数,并以空格隔开
# $0:命令本⾝,即要执⾏的⽂件名
# $1:第⼀个参数
# $2:第⼆个参数
# $3:第三个参数 后⾯⼀样 ~等等
echo "number of vars:"$#
echo "var of vars:"$0
echo "first var:"$1
echo "second var:$2
echo "third var:$34.let:⽤来执⾏算数运算和数值表达式测试。
let 命令的替代表⽰形式是:
((算术表达式))
,这样做的好处是如果表达式中含有特殊的字符,可以告⽰shell 进⾏特殊处理:例如,let ″val=a|b″。如果不括起来,Shell会把命令⾏let val=a|b中的“|”看成管道符,将其左右两边看成不同的命令,因⽽⽆法正确执⾏。
以下代码执⾏结果为:1 3 7 10
点击(此处)折叠或打开
#!/bin/bash
#filename is let.sh
i=1
echo "i="$i
let i=i+2
echo "i="$i
let "i=i+4"
echo "i="$i
((i+=3))
echo "i="$i5.函数调⽤:声明函数 function name(){~~~~},函数的调⽤,直接写函数名称name即可。
点击(此处)折叠或打开
#!/bin/bash
# filename is second.sh
# 函数申明和调⽤
function fun1(){
local a="hello world"
echo "函数调⽤成功 "$a
}
echo "函数调⽤前"
fun1
echo "函数调⽤结束"6.Shell中的变量种类:局部变量和全局变量 局部变量 是在函数中⽤local 声明的变量:他的作⽤域是在函数调⽤开始到函数结束。
linux循环执行命令脚本全局变量 在shell脚本下声明的变量,他的作⽤域是整个shell的⽣存周期内。shell结束,全局变量的周期也结束。
点击(此处)折叠或打开
#!/bin/bash
#filename is localvar.sh
var1="hello shell"
function fun(){
#定义局部变量
local var2="hello local variable"
echo "在函数中 使⽤局部变量 var2="$var2
echo "调⽤全局变量1 var1="$var1
}
fun
echo "在函数外调⽤ 局部变量 var2="$var2
echo "调⽤全局变量2 var1="$var1补充:环境变量、位置变量、标准变量、特殊变量等环境变量:⽤于所有的⽤户进程,可以看成是windows下的环境变量,⽤export定义:如
export LOGNAME="fjsm20", 可以⽤env或export查看系统环境变量
位置变量:就是调⽤函数时候的参数,例如:./first.sh 11 22 33 如上⾯的第3知识点
标准变量:就是bash环境建⽴的⼀些标准环境的标量,他会⾃动去解析,基本都在/etc/profile中定义了有
EXINIT,HOME,IFS,LOGNAME,MAIL,MAILCHECK等(引⽤⽹上资料)
特殊变量: $# 参数个数,$* 列出所有参数,$!显⽰后天脚本的进程Id ,$$显⽰当成脚本的进程id,$? 最后命令退出的状态,0 表⽰正常;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论