答:在子shell执行,那么变量的值总是不能如愿以偿的改变,示例如下: #!/bin/sh var="jello" cat "jello.txt" | while read line do var=${line} done echo "var=${var}" 看见示例中的管道了吗!这是个陷阱,会导致while在子shell 中执行,以至于var的值并没有被改变 解决方法: #!/bin/sh while read line do var=${li…
在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题. (1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. 例1:脚本变量的作用域#!/bin/bash#define the function ltx_funcltx_func(){ echo $v1 #modify the variable v1 v1=200 }#define the…
var a = undefined; ->false var a = 0; ->false var a = 0.0; ->false var a = NaN; ->false var a = ""; ->false var a = null; ->false var a = false; ->false var a ->false function a(){ }; //调用无返回值的函数,默认返回值是undefined a() ->…
编程语言中都有条件判断,shell编程也不例外,下面我们来看一下shell中应该怎么使用if条件判断 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script07.sh 开始编写script07.sh的脚本,脚本内容为: #! /bin/sh if [ 3 -gt 2 ] then echo "3>2" fi if [ 3 -lt 2 ] then echo "3<2" else ech…