当前位置: 技术问答>linux和unix
关于shell脚本的2个问题
来源: 互联网 发布时间:2016-06-24
本文导语: 1、echo Usage: finduser username >&2 显示的时候,显示Usage: finduser username,>&2是什么意思,为什么这里没显示 2、if [ 0 ] 和 if[ 1 ]为什么都为真? | 1、echo是想输出一个错误报告,但是看不明...
1、echo Usage: finduser username >&2
显示的时候,显示Usage: finduser username,>&2是什么意思,为什么这里没显示
2、if [ 0 ] 和 if[ 1 ]为什么都为真?
显示的时候,显示Usage: finduser username,>&2是什么意思,为什么这里没显示
2、if [ 0 ] 和 if[ 1 ]为什么都为真?
|
1、echo是想输出一个错误报告,但是看不明白>&2代表什么意思
我个人认为是将”Usage: finduser username “和错误输出一同输出到屏幕上!
2、至于if[ $((1>0)) ]和if[ $((1 0)) 和 $((1 0)) 和if ((1 &2的意思是把标准输出定位到标准错误。如果改成
$ echo xxx 2>t.txt >&2
就会输出到文件t.txt,标准输出和标准错误都会定位到t.txt。这里顺序是敏感的,如果改成
$ echo xxx >&2 2>t.txt
就会输出到标准输出,而错误信息输出到t.txt。
2. [ ]就是bash的内部命令test的另一种写法。test的具体描述参见bash manual 4.1。其中说了,当test不带参数时,总是返回false,当test带一个参数时,当且仅当参数不是null时为true。0和1当然都不是“没有”,""才是。
我个人认为是将”Usage: finduser username “和错误输出一同输出到屏幕上!
2、至于if[ $((1>0)) ]和if[ $((1 0)) 和 $((1 0)) 和if ((1 &2的意思是把标准输出定位到标准错误。如果改成
$ echo xxx 2>t.txt >&2
就会输出到文件t.txt,标准输出和标准错误都会定位到t.txt。这里顺序是敏感的,如果改成
$ echo xxx >&2 2>t.txt
就会输出到标准输出,而错误信息输出到t.txt。
2. [ ]就是bash的内部命令test的另一种写法。test的具体描述参见bash manual 4.1。其中说了,当test不带参数时,总是返回false,当test带一个参数时,当且仅当参数不是null时为true。0和1当然都不是“没有”,""才是。