有人可以帮助我理解这一点吗?
echo $?
-- 我知道它输出某种变量......
和这个
ls >> $File 2>&1
----有人能解释一下这是做什么的吗?
答案1
echo$?
将返回上一个命令的错误代码。
尝试
false ; echo $?
true ; echo $?
ls >> $File 2>&1
,将>>
ls 的 ( ) 输出重定向到名称为 的文件末尾$File
,2>&1
也将重定向错误(如果有)。
>>
代表追加到文件。
答案2
1. 使用解释shell.com:
或者
2. 搜索 shell 的手册页
通过做:
$ man sh #replace sh with another shell if you need to
您可以按 Ctrl-F 样式搜索模式/
,输入搜索模式,然后按 Enter。
概括:
回声:显示一行文本
$?:扩展到最近执行的命令/管道的退出状态
LS: 列出目录内容
>>:附加输出
2>&1:将 stderr (fd=2) 重定向到 stdout (fd=1) (在本上下文中,这是追加模式下的“$File”)
答案3
这个问题中更重要的是与重定向运算符有关的问题。
ls >> $File 2>&1
ls stands for list contents of current directory
>> means append to end of file
$FILE means there is a variable declared as FILE having some value, could be the path to a file.
2>&1 means redirecting both stdin and sterr to the target file, in this case $FILE.