我必须测试路径名是否是一个常规文件,如果它的长度大于50个字节,因此我喜欢这样做:
if [[ -f $path && `wc -c < $path` -gt 50 ]]; then ......但是,出于好奇,我也试着这样做:
if [[ -f $path && `$path > wc -c` -gt 50 ]]; then ......但这不管用,我也不明白为什么。
因此,我问您<和>运算符在Bash中的区别。
发布于 2015-12-29 23:30:55
这些运算符是不可交换的(位置不可互换)。
wc -c < $path意味着启动wc并使用$path上的文件作为输入。
$path > wc -c意味着在$path (在您的例子中,$path不是可执行文件)上启动可执行文件,并将其输出发送到wc的文件中。
正如你所看到的,第二个并没有真正的意义。始终使可执行文件成为第一个操作数(参数),以及您从第二个操作数读取或写入的文件。
https://stackoverflow.com/questions/34520697
复制相似问题