我从 ubuntu 中的脚本开始。这是一件非常容易和好的事情。在我的 shell 脚本中,我需要运行一些 linux 命令来更改目录、删除文件或复制文件或任何其他命令。所以我只是想知道这是否可以在脚本中获得命令未找到通知,这样如果任何命令在任何时候失败,我们都可以在终端上向用户显示错误消息。
我在谷歌上搜索了一下,发现使用下面我们可以读取终端响应:
fooVar=$(ls)
echo "Response: $fooVar"
所以上面我正在运行ls
命令,所以在终端上它看起来像这样:
Response:
folder1
folder2
file1
file2
但是如果我做类似的事情
fooVar=$(lsv)
echo "Response: $fooVar"
它给了我错误lsv command not found
,这没关系,因为lsv
它不是命令,但这个字符串应该是这样的
Response: lsv command not found
这是可能的还是我走错了路。另外,我们如何为这个错误设置一个 if 条件。请帮忙。谢谢
错误,
是发送到,
stderror
而正常输出是发送到stdout
。您将不得不重定向stderror
到stdout
:这几乎就是你想要的,除了
-bash:
标准输出有文件描述符 1,标准错误有描述符 2。所以我说的是“将标准错误发送到与标准输出相同的地方”。您可以使用类似的东西将输出或错误放入文件:
将正常输出放在一个名为“outfile”的文件中,并将最终错误放在“errfile”中。
将附加到文件而不是重置它们。而且您只能使用一个或另一个重定向。
尝试这个: