shell 命令

#!                               是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行。

echo                              窗口输出文本
-e                                  开启转义
\c                                  不换行
\n                                 换行

printf                             窗口输出文本,不会自动添加换行符
%数字s                             字符串,宽度为n个字符,-数字表示左对齐,无则标素有对象,内容不足空格填充,超过也会显示除所有内容.  %50s 
%-数字1.数字2f                     浮点数总长度为数字1,不足空格代替,小数点保留数字2,不足四舍五入。%-10.2f
%d                                 有符号十进制整数,对应位置参数必须是十进制整数,否则报错
%c                               字符
%b                                  开启转义,后面输出字符串中若含有转义字符会进行转义
\0                                  字符串结束标志
\b                                  退格
\r                               回车
\t                               制表符
\v                                 垂直制表符
\f                               换页
\ddd                             1到3位数八进制值的字符
\xhh                             16进制表示字符

read                            读取数据如数据
-p                                 输入提示文字
-n                                 输入字符长度限制,到达限制长度时,自动结束
-t                                输入时长
-s                                隐藏输入内容

{}     花括号识别变量的边界

变量名规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线_。
不能使用标点符号。
不能使用bash里的关键字

readonly                             将变量变更为只读
    
unset                                 删除变量,不能删除只读变量

${#string}                            获取字符串长度

${string:0:4}                        截取字符串,从下标为0的后4个字符串

`expr index "$string" a`            获取字符串a第一次出现的位置,注意` 是反引号不是单引号 '

数组名=(值1 值2 ... 值n);数组名[0]=value0                    定义数组,括号表示数组,数组元素用"空格"分割,下标没有范围

${数组名[下标]}                        获取数组,@ 作为下标可以获取数组所有数据

[@][*][n]                            获取数组长度

#                                    单行注释

:<<EOF EOF(eof可以使用其它符号代替)                            多行注释

$n                                    执行脚本时传递参数,数字为几代表第几个

$*                                    显示所有传递的参数

$@                                    分号分隔显示所有传递的参数

+        加            `expr $a + $b` 
-        减
\*        乘                            条件表达式要放在[]之间,并且要有空格
       除                            
%        取余

=        赋值或者判断两字符串是否相等
==        等于
!=        不等于
-z        判断字符串长度是否为0,为0    true
-n        字符串长度是否为0,不为0    false
$        判断字符串是否为空


-eq        判断是否相等,等同于    ==
-ne        判断是否不相等,等同于    !=
-gt        左边是否大于右边,等同于    >                只支持数字
-ge        左边是否大于等于右边,等同于    >=
-lt        左边是否小于右边,等同于    <
-le        左边是否小于右边,等同于    <=


非  >     -a 与    >    -o 或            &&        and               ||   或者


-b file        判断文件是否是块设备文件 是 返回true
-c file        判断文件是否是字符设备文件    是    返回 true
-d file        判断文件是否是目录    是    返回 true
-f file        判断文件是否是文件   是 返回 true
-g file        判断文件是否设置了SGID 位           是      返回 true
-k file        判断文件是否设置了粘着位(Sticky Bit)           是      返回 true
-p file        判断文件是否是有名管道           是      返回 true
-u file        判断文件是否设置了 SUID 位           是      返回 true
-r file        判断文件是否可读           是      返回 true
-w file        判断文件是否可写           是      返回 true
-x file        判断文件是否可执行           是      返回 true
-s file        判断文件是否为空(文件大小是否大于0),不为空返回 true
-e file        判断文件(包括目录)是否存在           是      返回 true
-S            判断某文件是否 socket
-L            判断文件是否存在并且是一个符号链接


test         检测条件是否成立
[]            执行基本算术运算符,等号两边不能有空格,var=$[a + b]等同于var=`expr $a + $b `
-e fileName    如果文件存在则为真
-r fileName    如果文件存在且可读则为真
-w fileName   名    如果文件存在且可写则为真
-x fileName        如果文件存在且可执行则为真
-s fileName        如果文件存在且至少有一个字符则为真
-d fileName        如果文件存在且为目录则为真
-f fileName        如果文件存在且为普通文件则为真
-c fileName        如果文件存在且为字符型特殊文件则为真
-b fileName        如果文件存在且为块特殊文件则为真


if then else fi                                        if else条件
    
if then elif then fi                                if elseif条件

for var in 参数 do 输入内容 done                    for循环

while 判断 do done                                    while语句

let arg                                                执行表达式,计算时不需要 $ 来表示变量,自加,自减语法 let var++;let var--;let var-=10

until condition  do done                            条件为false进入,true停止跟while相反,while循环优于until

case 值 in 
    模式1) ;;
    模式n)    ;;
                                        多选,每一模式必须以右括号结束。取值可以为变量或常数
     *);;    其它                                        
esac


command > file    将输出重定向到 file。
command < file    将输入重定向到 file。
command >> file    将输出以追加的方式重定向到 file。
n > file    将文件描述符为 n 的文件重定向到 file。
n >> file    将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m    将输出文件 m 和 n 合并。
n <& m    将输入文件 m 和 n 合并。
<< tag    将开始标记 tag 和结束标记 tag 之间的内容作为输入。
0    标准输入文件
1    标准输出文件
2    标准错误文件

注:重定向文件到/dev/null,可以起到禁止输出效果

. fileName            引入外部脚本,注意点号(.)和文件名要用空格分隔


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值