Linux B Shell 常用参考速查之总结

       最近在工作之余常用的是Bash shell,其它shell以前也写过,还是觉得BASH好用,下文只说明Bash Shell的常用命令,内容参考以前一位大神的文章,自己做了增删改,写在这里备用。在这里推荐使用的编程工具是:Sublime Text 2。
--------------------------------------------------------------------------
1.开头
#!/bin/bash
#!/usr/bin/expect <---这里是用expect写脚本时的开头,这里备用

2.常用系统变量
$# : 保存程序命令行参数的数目
$? : 保存前一个命令的返回码
$0 : 保存当前执行脚本的程序名
$* 和 $@ : 都是以("$1 $2...")的形式保存所有输入的命令行参数
$$ : 脚本执行进程号

3.定义变量
abc=9 或 abc="name"(bash不能在等号两侧留下空格 )
(注:由于shell程序的变量是无类型的,所以用户可以使用同一个变量存放字符或存放整数. )

4.引用变量
$abc <---建议用${abc}

5.位置变量
$1...$2...$3...$4... : 脚本和函数传入的位置参数值
当运行一个支持多个命令行参数的shell程序时,这些变量的值将分别存放在位置变量里. 其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推...,shell保留这些变量,不允许用户以另外的方式定义他们.

6.shell中引号的使用方法
"" 或 '' : 赋值使用,或特殊命令格式要求
`` : contents=`ls` <---等同于用$(),contents=$(ls)

7.shell程序中的test命令
test expression 或 test[expression]
在bash中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环语句中被用来判断某些条件是否满足.

8.字符串操作符(用于计算字符串表达式)
$str1 = $str2 ---> 当str1与str2相同时,返回True
$str1 != $str2 ---> 当str1与str2不同时,返回True
$str ---> 当str不是空字符时,返回True
-n $str ---> 当str的长度大于0时,返回True
-z str ---> 当str的长度是0时,返回True

9.整数操作符(只是他们的操作是针对整数)
int1 -eq int2 ---> 等于;当int1等于int2时,返回True
int1 -ge int2 ---> 大于等于;当int1大于/等于int2时,返回True
int1 -le int2 ---> 小于等于;当int1小于/等于int2时,返回True
int1 -gt int2 ---> 大于;当int1大于int2时,返回True
int1 -lt int2 ---> 小于;当int1小于int2时,返回True
int1 -ne int2 ---> 不等于;当int1不等于int2时,返回True


10.文件操作符(他们能检查:文件是否存在,文件类型等)

-d file ---> 当file是一个目录时,返回 True
-f file ---> 当file是一个普通文件时,返回 True
-r file ---> 当file是一个可读文件时,返回 True
-s file ---> 当file文件长度大于0时,返回 True
-w file ---> 当file是一个可写文件时,返回 True
-x file ---> 当file是一个可执行文件时,返回 True
------------------------------------------------

11.shell的逻辑操作符(用于修饰/连接包含整数,字符串,文件操作符的表达式 )
! expr |当expr的值是False时,返回True
expr1 -a expr2|当expr1,expr2值同为True时,返回True
expr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True
现在新的bash中,也可以用C里的判断符号了,如下:
Exp1 || exp2 |当exp1和exp2的值至少一个为True时,返回True
Exp1 && exp2 |当exp1和exp2的值同为True时,返回True

Int1 <= int2 |当int1小于/等于int2时,返回True
Int1 >= int2 |当int1大于/等于int2时,返回True
Int1 < int2 |当int1小于int2时,返回True
Int1 > int2 |当int1大于int2时,返回True
Str1 == str2 |当str1与str2相同时,返回True
Str1 != str2 |当str1与str2不同时,返回True
-e file |当file存在时,返回True
-o file |当file文件的所有者是当前用户时,返回True

12.条件语句
(1) if 语句

语法格式:

if [[ condition ]]; then
    #statements
else
    #statements
fi
或者
if [[ condition ]]; then
    #statements
elif [[ condition ]]; then
    #statements
else
    #statements
fi

(2)case语句
语法格式:   
case word in
    pattern )
        ;;
esac

13.循环语句
(1)for语句
语法格式:
第一种:类似C语言
for (( i = 0; i < 10; i++ )); do
    #statements
done
第二种:用于读取字符串很有用
for i in words; do
    #statements
done

(2)while语句
       while语句是shell提供的另一种循环语句. while语句指定一个表达式和一组命令.这个语句使得shell重复执行一组命令,直到表达式的值为False为止.
语法格式:
while [[ condition ]]; do
    #statements
done

(3)until语句
       until与while语句具有类似的语法格式和功能,不同的是while中expression的值为True时, shell执行命令组;而until中当expression的值为False时,shell才执行那组命令.

语法格式:
until [[ condition ]]; do
    #statements
done

(4)shift语句
       shift将存放在位置变量中的命令行参数,依次向左传递.例如
位置变量当前值为: $1=file1 $2=file2 $3=file3
执行一次shift命令后,位置变量的值为: $1=file2 $2=file3
还可以在shift命令中指定位置变量转移的次数, 如: shift n

(5)select语句
       select 表达式是一种bash的扩展应用,动作包括:
(1)、自动用1,2,3,4列出菜单 (没有echo指令,自动显示菜单)
(2)、自动read输入选择 (没有 read指令,自动输入)
(3)、赋值给变量 (没有赋值指令,自动输入数字后,赋值字符串给变量)


14.shell函数
       shell允许用户定义自己的函数.函数是高级语言中的重要结构.shell中的函数于C或者其他语言中定义的函数一样.与从头开始,一行一行地写程序相比,使用函数主要好处是有利于组织整个程序.在bash中,一个函数的语法格式如下:
fname (){
    shell comands
}
复制代码定义好函数后,需要在程序中调用他们.bash中调用函数的格式:
fname [parm1 parm2 parm3...]
调用函数时,可以向函数传递任意多个参数.函数将这些参数看做是存放他的命令行参数的位置变量.




参考资料:

http://blog.csdn.net/netocool/article/details/176947

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值