bash的使用

转自: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))
== ,!= 也是一样

$$ 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位变量

tput的使用

  1. tput clear # 清屏  
  2.   
  3. tput sc # 保存当前光标位置  
  4.   
  5. tput cup 10 13 # 将光标移动到 row col  
  6.   
  7. tput civis # 光标不可见  
  8.   
  9. tput cnorm # 光标可见  
  10.   
  11. tput rc # 显示输出  

 

 



posted @ 2017-09-05 17:43  LazyJoJo  阅读(186)  评论(0编辑  收藏  举报