shell 知识

(1)${变量1:位置}
(说明一下,默认是从左边开始,如果“位置”为负数,则是从右边的第“位置”个字符开始,并且第一个位置为0;从“位置”开始取子串到最后)
例:
str1=abcABCabc123ABC
echo ${str1 -3)}#会输出ABC
(2)${变量1:开始位置:结束位置}

(3)如果“变量1”为“*”或“@”,“位置”所表示的是第几个参数。


cmd1;cmd2     cmd1无论成功与否,cmd2 都会执行

cmd1&&cmd2  cmd1 执行成功后才执行cmd2

cmd1||cmd2      cmd1执行失败后才执行cmd2,成功则不执行cmd2,有且只有一条命令执行


ctrl + z 是暂停任务,fg 把jobs的后台任务转到前台执行,bg把前台执行的任务转到后台 , cmd1  & 的意思是在后台执行cmd命令

ctrl + d是中止任务


num = 2

echo "the number is $numnd"    输出是 the number is    ,把numnd当作是一个变量

echo “the number is ${num}nd ”, 输出是the number is 2nd

echo "the number is {$num}nd",     输出是the number is {2}nd


${ } 用来作变量替换。
一般情况下,$var 与 ${var} 并没有啥不一样。


单引号 ‘
由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。例如:

$ string=’$PATH’

$ echo $string

$PATH



双引号 “
由双引号括起来的字符,除$、、’、和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。




反引号 `
反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。例如:

$ pwd

/home/xyz

$ string=”current directory is `pwd`”

$ echo $string

current directour is /home/xyz

$





反斜杠
反斜杠去掉它后面字符的特殊意义,如:
$echo "\$x"
 $x
$echo "THe Value of x is \"$x\""
 THe Value of x is "5"
$echo \\
 \
$echo '\'
 \
shell把行尾的反斜杠作为续行,它去掉跟在后面的换行字符,也不把换行字符当作参数分隔符。
这种结构在分几行键入命令时经常使用。

命令替换
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置的功能。
1)反引号
用法:`command`
$echo the date and time is : `date`
 the date and time is wed aug 28 14:28:43 edt 2007
2)$(...)结构
用法:$(command)
$echo the date and time is : $(date)
括号中不限于执行一条命令,如果把命令用分号隔开,可以执行多条命令;也可以使用管道线.
这种结构比反引号好.首先,复杂的命令中组合使用正,反引号很难看懂;第二,$()结构容易嵌套,这样可以在命令替换中进行命令替换,
尽管用反引号也能进行嵌套,但比较难处理.

expr 命令
expr 1 + 2
每一个操作符和操作数都必须分别用参数传给expr,故expr 1+2 是错误的


$? 表示上一个程序执行结束的返回jjkkik值


case 是用来匹配一个给定的字符串

select 是bash的一个扩展使用,可用于用户交互,用户可以从一组不同的值中进行选择


-n  字符串不为空,则为真

-z  字符串为空 则为真


shell  -x test.sh 为调试模式

shell -n test.sh 只进行语法检查



-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真 
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真 
-w filename 如果 filename可写,则为真 
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
至于!号那就是取非了呗!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值