智者,既能奋发不休,又能尽人事,顺天命
分类:
2010-03-22 14:23:29
:命令不做任何事,只是返回0,就是命令执行成功。但是下面这个情况有点奇怪:
var变量没有被设置,执行
: < ${var?} eof 会报错,$?的值是1. 查了一下手册,同时写进脚本中执行了一下,搞清楚了: :命令会把变量展开并执行重定向操作,然后返回0并退出。当var变量没有被赋值,${var?}会有报错,但不是命令执行错误,而是变量展开错误。执行下面这个脚本看得会更清楚:
运行起来会报错,但没有执行echo语句,就是说脚本根本就没有运行,更像是语法检查出有错误,给出的错误提示也很像语法错误提示。#!/bin/sh
: <<eof
${var?}
eof
echo hello