有段代码看不懂,求教
时间:2011-07-26
来源:互联网
①# suck configuration.
②BASE_DIR=${0%/*}
③. ${BASE_DIR}/../etc/common.conf
④. ${BASE_DIR}/conf/ghd_common.conf
⑤exec 2>&1
⑥exec 1>${DIRGIDARC}/aaa.log
这是一个cron的前7行代码,有没有高手能告诉我①~⑥这6行代码的意思是什么?
如:
②${0%/*}的值是什么
作者: shaohua81 发布时间: 2011-07-26
纯粹是注释
②BASE_DIR=${0%/*}
先看这个语法 ${varible%string*} 从右向左截取第一个string后的字符串 $0是你执行的脚本
比如你是./test.sh 那么$0就是./test.sh 如果是/path/to/test.sh 那么$0就是/path/to/test.sh
所以BASE_DIR=${0%/*} 就是取$0的路径 然后赋值给BASE_DIR
③. ${BASE_DIR}/../etc/common.conf
在当前shell脚本环境里执行${BASE_DIR}/../etc/common.conf 不启动子进程 多半是为了设置环境变量等
④. ${BASE_DIR}/conf/ghd_common.conf
在当前shell脚本环境里执行${BASE_DIR}/conf/ghd_common.conf 不启动子进程 多半是为了设置环境变量等
⑤exec 2>&1
2代表标准错误 1代表标准输出 这句话就是把脚本的标准错误 重定向到标准输出 也就是错误信息和正常信息一起输出
⑥exec 1>${DIRGIDARC}/aaa.log
1代表标准输出 这句就是把标准输出定向到日志文件${DIRGIDARC}/aaa.log里 因为前面第5句把标准错误也定向到标准输出了 所以错误信息也会写到${DIRGIDARC}/aaa.log日志里
如果你还不懂exec的用法 google搜shell exec内建命令用法
作者: steptodream 发布时间: 2011-07-26
作者: shaohua81 发布时间: 2011-07-26
感谢你的回答,②的回答里有点问题,${0%/*}里面是0%,而不是$0。
${0%/*} 这个就是按照${varible%string*}语法操作$0变量 这下明白了没
作者: steptodream 发布时间: 2011-07-26
作者: shaohua81 发布时间: 2011-07-26
②BASE_DIR=${0%/*}
先看这个语法 ${varible%string*} 从右向左截掉$varible里的第一个string后的字符串 所以这里就是截掉$0从右向左的第一个/以后后的字符串 只剩下前边的
$0是你执行的脚本
比如你是./test.sh 那么$0就是./test.sh ${0%/*}的结果就是. 即当前目录 如果是/path/to/test.sh 那么$0就是/path/to/test.sh ${0%/*}的结果就是/path/to
所以BASE_DIR=${0%/*} 就是取$0的路径 然后赋值给BASE_DIR
作者: steptodream 发布时间: 2011-07-26
多谢!!
结贴 结贴!
作者: steptodream 发布时间: 2011-07-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28