|
比如我判断当前目录下一个文件是否存在,来决定接下来的动作。如果不存在,那么给出错误信息并退出。于是我这样写:
[ -f FILENAME ] || ( echo "file not exist" && exit 1 )
echo "file exist and get here"
但是我发现不论文件FILENAME是否存在,都不会打出"file not exist"这一句,而总是会执行到下面,于是我猜()是让命令在子shell中执行,可是我看的一个shell介绍的pdf中说()是当前shell执行,而{}才是子shell,但是我用{}却报错,语法都不通过。(注:我用的是bash)
不知道我哪里理解的不对,想实现我的意图,该怎么做呢?(限制在这种写法,如果用if的话很容易,这个我是知道的),另外最好请详细指教一下在当前shell中和子shell中执行组合命令应该怎么实现啊?谢谢先! |
|