嵌入式shell实训返回语句怎么写

作者&投稿:巨赖 (若有异议请与网页底部的电邮联系)
如何得到shell的返回值~

函数的返回值实际上就是函数的退出状态
yes_or_no Kitty
i=$?
就可以了。
$? 代表上一条指令的退出状态。
怎样使用if语句就随便你了。

函数的返回值实际上就是函数的退出状态
yes_or_no Kitty
i=$?
就可以了。
$? 代表上一条指令的退出状态。
怎样使用if语句就随便你了。

#!/usr/bin/env bash
2 # encoding: utf-8
3 # author: kj
4
5 cat scan.log | grep -E 'HBA=LPe12002'
6
7 PORTS=$(cat scan.log | grep -c 'Port')
8
9 echo The Number of Port is $PORTS
10
11 myvar=1
12 while [ $myvar -le $PORTS ]
13 do
14 ./HBA_Firmware.sh $myvar
15 ./HBA_Bootcode.sh $myvar
16 IRecode=$?
17 #echo $myvar
18 myvar=$(( $myvar + 1 ))
19 done
20
21
22 #rm -f scan.log
23
24 exit ${IRecode}
1. $# 传递到脚本的参数个数
2. $* 以一个单字符串显示所有向脚本传递的参数变量。与位置变量不同,此选项参数可超过9个
3. $$ 脚本运行的当前进程ID号
4. $! 后台运行的最后一个进程的进程ID号
5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数
6. $- 显示shell使用的当前选项,与set命令功能相同
7. $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
8. $()里面放命令,可以在脚本中执行该命令,并返回命令执行的输出。
Linux Shell中写循环时,常常要用到变量的自增,现在总结一下整型变量自增的方法。
我所知道的,bash中,目前有五种方法:
1. i=`expr $i + 1`;
2. let i+=1;
3. ((i++));
4. i=$[$i+1];
5. i=$(( $i + 1 ))
可以实践一下,简单的实例如下:

#!/bin/bash
i=0;
while [ $i -lt 4 ];
do
echo $i;
i=`expr $i + 1`;
# let i+=1;
# ((i++));
# i=$[$i+1];
# i=$(( $i + 1 ))
done

另外,对于固定次数的循环,可以通过seq命令来实现,就不需要变量的自增了;实例如下:

#!/bin/bash
for j in $(seq 1 5)
do
echo $j
done

Shell(以Bash为例)中的循环语句一般有for、while、until这几种,偶尔还有写错语法的时候,这里结合实例来自己总结一下。也为今后使用提供一个快捷的资料获取渠道。

1.for循环语句
实例1.1 最基本的for循环

#!/bin/bash

for x in one two three four
do
echo number $x
done

注:"for" 循环总是接收 "in" 语句之后的某种类型的字列表。在本例中,指定了四个英语单词,但是字列表也可以引用磁盘上的文件,甚至文件通配符。
实例1.2

#!/bin/bash
for x in /var/log/*
do
#echo "$x is a file living in /var/log"
echo $(basename $x) is a file living in /var/log
done

注:这个$x获得的是绝对路径文件名;可以使用 "basename" 可执行程序来除去前面的路径信息。如果只引用当前工作目录中的文件(例如,如果输入 "for x in *"),则产生的文件列表将没有路径信息的前缀。
实例1.3 对位置参数做for循环

#!/bin/bash
for thing in "$@"
do
echo you typed ${thing}.
done
实例1.4 for循环中用seq产生循环次数

#!/bin/bash
for j in $(seq 1 5)
do
echo $j
done
注:对于固定次数的循环,可以通过seq命令来实现,就不需要变量的自增了

2.while循环语句
实例2.1 循环输出1到10的数字

#!/bin/bash
myvar=1
while [ $myvar -le 10 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done

注:只要特定条件为真,"while" 语句就会执行

3.until循环语句
实例3.1 循环输出1到10的数字
"Until" 语句提供了与 "while" 语句相反的功能:只要特定条件为假,它们就重复。下面是一个与前面的 "while" 循环具有同等功能的 "until" 循环。

#!/bin/bash
myvar=1
until [ $myvar -gt 10 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done

1.for循环语句
实例1.1 最基本的for循环
#!/bin/bash
for x in one two three four
do
echo number $x
done

注:"for" 循环总是接收 "in" 语句之后的某种类型的字列表。在本例中,指定了四个英语单词,但是字列表也可以引用磁盘上的文件,甚至文件通配符。
实例1.2
#!/bin/bash
for x in /var/log/*
do
#echo "$x is a file living in /var/log"
echo $(basename $x) is a file living in /var/log
done

注:这个$x获得的是绝对路径文件名;可以使用 "basename" 可执行程序来除去前面的路径信息。如果只引用当前工作目录中的文件(例如,如果输入 "for x in *"),则产生的文件列表将没有路径信息的前缀。
实例1.3 对位置参数做for循环
#!/bin/bash
for thing in "$@"
do
echo you typed ${thing}.
done
实例1.4 for循环中用seq产生循环次数
#!/bin/bash
for j in $(seq 1 5)
do
echo $j
done
注:对于固定次数的循环,可以通过seq命令来实现,就不需要变量的自增了
2.while循环语句
实例2.1 循环输出1到10的数字
#!/bin/bash
myvar=1
while [ $myvar -le 10 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done

注:只要特定条件为真,"while" 语句就会执行
3.until循环语句
实例3.1 循环输出1到10的数字
"Until" 语句提供了与 "while" 语句相反的功能:只要特定条件为假,它们就重复。下面是一个与前面的 "while" 循环具有同等功能的 "until" 循环。
#!/bin/bash
myvar=1
until [ $myvar -gt 10 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done

还有一点非常重要,循环中难免会用到临时变量的自增,shell中变量自增的实现方法,见我前面的一个
Linux Shell中写循环时,常常要用到变量的自增,现在总结一下整型变量自增的方法。
我所知道的,bash中,目前有五种方法:
1. i=`expr $i + 1`;
2. let i+=1;
3. ((i++));
4. i=$[$i+1];
5. i=$(( $i + 1 ))
可以实践一下,简单的实例如下:
#!/bin/bash
i=0;
while [ $i -lt 4 ];
do
echo $i;
i=`expr $i + 1`;
# let i+=1;
# ((i++));
# i=$[$i+1];
# i=$(( $i + 1 ))
done
另外,对于固定次数的循环,可以通过seq命令来实现,就不需要变量的自增了;实例如下:
#!/bin/bash
for j in $(seq 1 5)
do
echo $j
done


嵌入式shell实训返回语句怎么写
5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数 6. $- 显示shell使用的当前选项,与set命令功能相同 7. $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误 8. $()里面放命令,可以在脚本中执行该命令,并返回命令执行的输出。Linux Shell中写循环时,常常要用到变...

嵌入式需要学习什么
嵌入式Linux操作系统学习规划\\x0d\\x0aARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: \\x0d\\x0a(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) \\x0d\\x0a(2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) \\x0d\\x0a(3) 必须熟悉嵌入式软件开发流程并至...

要学习嵌入式,现在需要学习哪些基本课程?
嵌入式主要内容包括linux系统,C语言开发,数据库等,JAVA部分的安卓开发等,学成后可以开发应用软件的,内核开发,驱动开发等工作,做项目。目前国内零基础的入门性课程较多,如果自己是软件开发相关专业或有较好的基础的,应该考虑星创客这样的专为培养中高级工程师的课程 已赞过 已踩过< 你对这个回答的评价是? 评论 ...

模具的core pins是什么意思
core pin: 心销 | 心型梢 | 中心销 | 穿孔杆

大数据培训内容,大数据要学哪些课程
链接:https:\/\/pan.baidu.com\/s\/1RiGvjn2DlL5pPISCG_O0Sw ?pwd=zxcv 提取码:zxcv 大数据实训课程资料|云计算与虚拟化课程资源|课程实验指导书综合版|机器学习与算法分析课程资源|Spark课程资源|Python课程资源|Hadoop技术课程资源|云计算课程资料.zip|微课.zip|算法建模与程序示例.zip|spark课程资源....

好的linux培训机构是哪家?
学习Linux可以帮助学员掌握服务器管理、网络配置和Shell脚本编程等关键技能,提升自己的职业竞争力。因此,选择一个好的Linux培训机构 重要。千锋教育拥有丰富的Linux培训经验。我们的Linux培训课程涵盖了Linux操作系统的基础知识、核心原理和实际应用。学员将学习到Linux的基本命令和文件操作,以及系统管理和网络...

Linux操作系统高级教程目录
实训1Fedora8的安装 第2章Fedora8基本操作 2.1Xwindow概述 2.1.1xWindow简介 2.1.2xWindow的基本概念 2.2GNOME及其使用 2.2.1GNOME简介 2.2.2GNOME的组成 2.2.3GNOME面板 2.2.4GNOME桌面 2.2.5GNOME桌面环境设置 2.2.6退出GNOME桌面 2.3KDE桌面环境 2.3.1使用组合键 2.3.2在...

模具专业英语短文和翻译
bismuth mold 铋铸模 landed plunger mold 有肩柱塞式模具 burnishing die 挤光模 landed positive mold 有肩全压式模具 button die 镶入式圆形凹模 loading shoe mold 料套式模具 center-gated mold 中心浇口式模具 loose detail mold 活零件模具 chill mold 冷硬用铸模 loose mold 活动式模具 clod hobbing 冷挤...

大数据培训到底是培训什么
在大数据培训班主要培训内容有:一、课程内容教学。不同的培训机构,根据课程内容的不同,当然时间也会有所差异,学习内容大概为Java语言基础、HTML、CSS、JavaWeb和数据库、Linux基础、Hadoop生态体系、Spark生态体系等课程内容。二、项目实战训练。参加【大数据培训】必须经过项目实战训练。学员只有经过项目...

云计算培训学校选哪家比较好
5、通识性算法基础:算法是众多编程语言必须掌握的技术,学习算法为程序员奠定多领域拓展的能力。感兴趣的话点击此处,免费学习一下想了解更多有关云计算培训机构的相关信息,推荐咨询【达内教育】。该机构已从事19年IT技术培训,并且独创TTS8.0教学系统,1v1督学,跟踪式学习,有疑问随时沟通。该机构26大...

汶川县17547196531: shell 函数怎么返回字符串 -
淳星桂利: bash的函数功能没有C语言那么强大,函数内的变量默认是全局变量,你可以利用函数中的字符串变量.bash函数本身不能是字符串类型(不能像C语言那种,函数本身可以是某种类型),bash函数的最后一句或者中间某句可以是return N,只能返回整数,一般0代表成功,非0意味着失败,你也自己可以规定返回什么值——代表什么意思等等.bash函数中没有return的话,函数中最后一条命令的退出状态码(一般0代表成功,非0意味着失败,127代表命令没找到,command not found)将作为整个函数的返回值. 请参考新书《实用Linux Shell编程》

汶川县17547196531: shell函数怎么返回一个关联数组 -
淳星桂利: # 实例演示shell函数返回数组,准确说应该是返回字符串,然后通过一定的构造得到一个数组# 重点在于自己怎么样去构造适合用数组存储的数据格式# 函数 thinker()# 功能 将附加在脚本末尾的 域名:IP 抽取出来,存储在字符串变量中,并返...

汶川县17547196531: linux 执行shell脚本并将返回的信息写到指定的文件,这个要怎么写 -
淳星桂利: 楼上正解,使用script.sh | tee -a filelog可以追加而不覆盖; 用重定向也可以,重定向的话返回信息就不会显示在控制台上了,script.sh >> filelog,使用>是覆盖写入

汶川县17547196531: 如何将数据库查询值返回给shell变量 -
淳星桂利: CNT=$(sqlplus -S 用户名/密码@实例名

汶川县17547196531: 如何得到shell的返回值 -
淳星桂利: $?这个就是上一次命令执行的返回值 可以用在shell脚本中.比如 ls echo $?ls成功显示0

汶川县17547196531: shell中调用sql 语句,再将结果返回shell作为变量 -
淳星桂利: 1、用sqlldr把数据导出到文件中.2、再从文件中把数据读出来.※我们实际项目中是这么做的.-- 以上,希望对你有所帮助.

汶川县17547196531: shell语言 循环语句怎么写 -
淳星桂利: echo –n “input:” read user if 多条指令,这些命令之间相当于“and”(与) grep $user /etc/passwd >/tmp/null who -u | grep $user then 上边的指令都执行成功,返回值$?为0,0为真,运行then echo "$user has logged" else 指令执行失败,$?为1,运行else echo "$user has not logged" fi

汶川县17547196531: linux shell中获得进程返回值 -
淳星桂利: se "$x" in y | yes ) return 0;; n | no ) return 1;;* ) echo "Answer yes or no" shell结束用return跳出while true while true 是一直为真,不断循环,直到输入yes或no时,用return退出shell程序.程序结束了,循序肯定也结束了. ------------------------- ...

汶川县17547196531: 如何在shell脚本中,判断一个基本命令执行是否成功 -
淳星桂利: 每一条基本命令执行后都有一个返回码,该返回码是用$?表示,执行成功的返回码是0,例如:if [ $? -ne 0 ];then 上一命令执行失败时的操作 else 上一命令执行成功时的操作 fi

汶川县17547196531: 如何获取shell函数的返回值及shell命令的返回值 -
淳星桂利: shell中,$? 就是上一个执行命令或函数的返回码,例如 执行命令xxxxxecho $? 就输出了执行命令xxxxx的返回码,当然也可以把$?保存到一个变量中,用于后续的计算或者其

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网