菜鸟一位想写一个linux shell 脚本,执行次脚本回显数字,执行第一次回显1,执行第二次显示2,以此类推...

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟一位想写一个linux shell 脚本,执行次脚本回显数字,执行第一次回显1,执行第二次显示2,以此类推...相关的知识,希望对你有一定的参考价值。

参考技术A 请问楼主这样的脚本 是你实现另一个脚本的细节部分吧?

如果是这样,建议:
1、首先局部变量不可以长期保存,也就是说有存活期
比如:countNum=2
如果你长时间不运行再去运行的话,想让输出3,但这时候countNum可能已经恢复成0了
所以楼上正解,保存到一个文件中
其次,可以生命为全局变量。即 export countNum=2
这样的方法,保证执行次数正确无误
2、其次如果不是一个大的脚本的小细节的话,这样的脚本没有任务意义~

纯手打,请采纳~
参考技术B 在本地记录一个计数文件就可以了,每次读取记数文件数值 然后加1
#!/bin/sh
file=".count.rec"
count=0
if [ -f $file ]; then
read count < $file
fi
count=`expr $count + 1`
echo $count
echo $count > $file
参考技术C 试下下面的这个脚本,showcnt.sh

#!/bin/bash

cntFile=".showcnt.txt"

if [ ! -f $cntFile ]; then
echo "0" > $cntFile
#chmod +rw $cntFilefi

if [ $# == 1 ]; then
if [ $1 == "resetcnt" ]; then
echo "0" > $cntFile
fi
fi

tCnt=`cat $cntFile`
echo $(($tCnt + 1)) > $cntFile

echo "//====================================="
echo "//== 这是您第 $tCnt 次执行本文件" echo "//====================================="

里面显示创建了一个隐藏文件.showcnt.txt,来记录被执行的次数
然后每次执行是就把这个文件的内容取出来,加1,并重新写到文件中,同时打印该值

留了一个小后门,执行 ./showcnt.sh resetcnt的时候,会把.showcnt.txt内容重新置为0
当然,你也可以手动的echo "0" >.showcnt.txt来进行计数文件的重置
需要注意一点的是,不要让其它操作把这个文件删掉

软件测试菜鸟之路————Shell编程

Shell是一个应用程序,提供了一个界面,用户通过这个界面访问操作系统内核的服务。

Shell script    是一种为shell编写的脚本程序。

Shell环境:

vi文本编辑器和能解释执行脚本的解释器。

 

vi脚本编写

vi  filename.sh

脚本第一行格式:

#!/bin/bash  用来指定脚本文件的解析程序为bin目录下的bash解析器

执行脚本:

1、脚本的执权限

第一种方式:chmod +x filename.sh(赋予脚本可执行权限)

编译:./filename.sh

第二种方式:/bin/bath filename.sh

 

Shell中的变量

shell中变量有两种:用户自定义变量 和 系统默认变量。

变量声明的时候变量名和等号之间不能有空格。

变量命名要求:

1、首个字符必须为字母

2、中间不能有空格,可以使用下划线

3、不能使用标点符号

4、不能使用bash里的关键字

Shell编程中,所有变量都是由字符串组成,不需要事先声明变量的类型。

使用定义过的变量,只需要再变量名前加一个$符号。

 

使用readonly命令将变量定义为只读变量,变量值不可变。

readonly [变量名]

删除变量:

unset [变量名]

变量被删除后不能再次使用,不能删除只读变量。

 

字符串的操作

1、字符串的拼接

使用大括号来界定变量名。

2、获取字符串长度

echo ${#string}

3、提取子字符串

echo $(string:1:5):提取第二到第五个字符

 

数组:多个相同类型的变量组成的集合。shell没有限定数组的大小。

数组用括号表示,元素之间用空格分开。

读取数组:

${array[@]}读取所有元素

${array[1]}读取第二个元素值

获取数组的长度:

length=${#array[@]}

获取数组单个元素的长度

length=${#array[n]}

 

Shell 注释

以#开头的行就是注释,sh没有多行注释,只能单行注释。

 

Shell 基本运算符

expr是一款表达式计算工具,使用它能完成表达式的求职操作

 

两个数相加:

`expr 1 + 2`(反引号而不是单引号)

两数相减:

`expr 2 - 1`

两数相乘:

`expr 2 * 3`

除法:

`expr 7 / 3`  = 2

取余:

`expr 7 % 3`  = 1

赋值   =

相等 ==

不相等 !=

 

待续

 

以上是关于菜鸟一位想写一个linux shell 脚本,执行次脚本回显数字,执行第一次回显1,执行第二次显示2,以此类推...的主要内容,如果未能解决你的问题,请参考以下文章

软件测试菜鸟之路————Shell编程

我想写一个简单的shell脚本,来将我的源文件中的每行进行排序输出,

linux shell 脚本 和 tcn expec 混合的问题

linux 怎么进入shell编程模式

菜鸟--shell脚本编写之解决问题篇

Shell 脚本编程基础