shell 与makefile有关常用总结
原创
©著作权归作者所有:来自51CTO博客作者河豚的原创作品,请联系作者获取转载授权,否则将追究法律责任
shell脚本的开头必须加#! /bin/bash
test:
对文件测试
- d 目录- s 文件长度大于0、非空
- f 正规文件- w 可写
- L 符号连接- u 文件有s u i d位设置
- r 可读- x 可执行
例子:[-d lj] //lj目录存在吗? 存在则为真
逻辑测试
-a (与) -o (或)
字符串测试
[string1 operator string2]
= 两个字符串相等。
!= 两个字符串不等。
-z 空串。
-n 非空串。
进行字符串比较时 变量必须用双引号...在变量赋值时,变量没有规定必须要双引号
如:["$PATH1" = "$PATH2"]
测试数字
-eq 数值相等。
-ne 数值不相等。
-gt 第一个数大于第二个数。
-lt 第一个数小于第二个数。
-le 第一个数小于等于第二个数。
-ge 第一个数大于等于第二个数
if 条件判断
if 条件1
then 命令1
elif 条件2
then 命令2
else 命令3
if
case
case 值 in
模式1) 命令1
...
;; //两个分号
模式2)命令2
...
;; //两个分号
esac
for
for 变量名i n列表
do
命令1
命令2…
done
双引号:
对shell, 对已经赋字符串值的变量,有没有双引号都是一样的值.
如:
#MYDATE="date"
#echo $MYDATE
date //输出也是data, 但在条件测试里,必须要加双引号.
单引号:
与双引号一样. 但如果屏蔽了它特殊的含义,将会单引号被输出...
如:
#GIRL='beauty' //如何echo $GIRL 则输出的是 beauty
#echo "she is '$GIRL'" //里面的单引号被输出
she is 'beauty'
反引号:
shell将反引号中的内容作为一个系统命令,并执行其内容
如:
$echo `data`
Sun May 16 16:40:19 GMT 1999
常用嵌入标准命令
: 空,永远返回为t r u e
. 从当前shell中执行操作
break 退出for、while、until或case语句
cd 改变到当前目录
continue 执行循环的下一步
exit 退出当前shell
pwd 显示当前目录
位置参数: 如果要访问超过$9参数,请用shift
$0 $1 $2 $3 $4 $5 $6 $7 $8 $9
脚本名字 Did You See The Full Moon
特殊变量参数
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超 过9个
$$ 脚本运行的当前进程I D号
$! 后台运行的最后一个进程的进程I D号
$@ 与$ #相同,但是使用时加引号,并在引号中返回每个参数
$- 显示s h e l l使用的当前选项,与s e t命令功能相同
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
下一篇:linux 环境变量重置的问题.
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
makefile总结
makefile总结
makefile 跟我一起写 Makefile javascript 自动生成 多目标 -
shell脚本,Linux命令,makefile的学习总结目录
目录链接其他说明find grep m
linux vim centos Shell 常用模板 -
makefile全面总结
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和prof
makefile linux 目标文件 依赖关系 GNU