Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux “有什么用?”;回声“真”吗;?_Linux_Bash_Shell_Sh - Fatal编程技术网

Linux “有什么用?”;回声“真”吗;?

Linux “有什么用?”;回声“真”吗;?,linux,bash,shell,sh,Linux,Bash,Shell,Sh,为什么有人想要像echo“something”| | true这样的代码 我在Ubuntu 14.04的/lib/lsb/init functions第92行发现了这样的用法: echo“$pid”| | true 我知道| |代表或。但我找不到一种方法让echo产生除零以外的任何类型的退出代码。即使是这样,谁在乎呢 我的意思是,使用前缀| | true确保退出代码始终为0。因此,如果双管道的左侧产生与0不同的结果,则将执行true,并使整行产生0 为什么偏执狂的出口代码是简单的回音?是否有任何

为什么有人想要像
echo“something”| | true这样的代码

我在Ubuntu 14.04的
/lib/lsb/init functions
第92行发现了这样的用法:

echo“$pid”| | true

我知道| |代表或。但我找不到一种方法让echo产生除零以外的任何类型的退出代码。即使是这样,谁在乎呢

我的意思是,使用前缀
| | true
确保退出代码始终为0。因此,如果双管道的左侧产生与0不同的结果,则将执行true,并使整行产生0

为什么偏执狂的出口代码是简单的回音?是否有任何东西检查
/lib/lsb/init functions
上的每一行是否都成功完成

为什么偏执狂带着退出密码

我认为这是为了避免脚本退出,因为可能会使用:

set -e

如果标准输出中存在I/O错误,例如,如果它被重定向到不存在的目录中的文件,或者被重定向到
/dev/full
@gniourf\gniourf:我在想
echo…>/没有/soke/dir/foo.txt,但是如果脚本的输出被重定向到这种方式,那么它将不会运行,
echo
命令将永远不会执行。@anubhava-这一点很好。在这种情况下,没有
set-e
,但由于这是一个函数库,调用方脚本可能使用
set-e
,因此初始化函数是礼貌的。@Akira无效重定向是什么意思?请注意,在执行时:
echo'lol'>/non/existence
,永远不会执行
echo
。您会得到一个失败的返回代码,但它来自Bash,无法打开
/none/existence
进行重定向。@Akira,在
/dev/full
的情况下,失败的不是重定向,而是后重定向写入。而
1>&-
关闭操作将成功,而随后的write()操作将失败。顺便说一句,我个人倾向于将其写成
|:
;稍微短一点/简洁一点/视觉上不太分散注意力。