码迷,mamicode.com
首页 > 其他好文 > 详细

bash的使用

时间:2017-09-05 19:06:31      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:process   while   conf   $?   tle   art   文件   man   数列   

转自:http://blog.csdn.net/y2888886/article/details/50535033  

在上篇博文的基础上做如下修改

注意一些常见命令中间就要加 “ ” ,否则很多命令无法识别

sh **.sh  和 bash **.sh 在一些命令的解析上还是有差别的,所以尽量使用bash

博文中let 的写法应为 let x=x+1

注意for ,while,case也可以使用以下写法(测试这规则也适用于if)

技术分享

-eq     等于,如:if [$a -eq $b ]
-ne 不等于,如:if [$a -ne $b ]
-gt 大于,如:if [$a -gt $b ]
-ge 大于等于,如:if [$a -ge $b ]
-lt 小于,如:if [$a -lt $b ]
-le 小于等于,如:if [$a -le $b ]
< 小于(需要双括号),如:((a < b))
<= 小于等于(需要双括号),如:((a <= b))
> 大于(需要双括号),如:((a > b))
>= 大于等于(需要双括号),如:((a >= b))
== ,!= 也是一样

$0就是该bash文件名
$?是上一指令的返回值
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最后运行的后台Process的PID 
$? 
最后运行的命令的结束代码(返回值) 
$- 
使用Set命令设定的Flag一览 
$* 
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@ 
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$# 
添加到Shell的参数个数 
$0 
Shell本身的文件名 
$1~$n 
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。  “$*”返回的是一个字符串,字符串中存在多外空格。 “$@”返回多个字符串

if [ $? -ne 0 ]; then

$? 表示上一条命令返回值,如果上一条命令成功执行,返回0,否则返回1. [$? -ne 0] 表示如果$?的值不等于0,则上一条命令执行失败。

退出码(exit status,或exit code)的约定:

0表示成功(Zero - Success)

非0表示失败(Non-Zero  - Failure)

2表示用法不当(Incorrect Usage)

127表示命令没有找到(Command Not Found)

126表示不是可执行的(Not an executable)

 

echo "expected conf not found, fail" >&2  这句话中 “>&2”中&表示程序继续运行,2为错误日志 ,1为普通日志

 

shift 命令 左移命令,用于输入参数时——命令每执行一次,变量的个数($#)减一(之前的$1变量被销毁,之后的$2就变成了$1),而变量值提前一位  可以shift 2 删除2位变量

 

 



bash的使用

标签:process   while   conf   $?   tle   art   文件   man   数列   

原文地址:http://www.cnblogs.com/LazyJoJo/p/7479833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!