在Bash中使用逻辑运算符时如何不打印错误语句?
How do you not print the error statement when using logical operators in Bash?
假设我有以下脚本:
#!/usr/bin/env bash
git -v || echo "You don't have Git!"
此脚本的目的是检查用户是否有 git 并在没有时显示。在这个脚本中,如果运行它的用户没有 git,它不仅会显示“你没有 Git!”,还会显示一条错误消息:
git: command not found
是否有任何方法可以在 bash 中使用逻辑运算符来模拟 try-catch/try-except 语句,除非在脚本中被告知这样做,否则它不会显示错误消息?
将 stderr
(错误流)重定向到 /dev/null
:
git -v 2>/dev/null || echo "You don't have Git!"
另一种选择是获取 git
命令的实际路径:
if gitcmd=$(command -v git)
then
echo "Git is at $gitcmd"
else
echo "You don't have Git!"
fi
假设我有以下脚本:
#!/usr/bin/env bash
git -v || echo "You don't have Git!"
此脚本的目的是检查用户是否有 git 并在没有时显示。在这个脚本中,如果运行它的用户没有 git,它不仅会显示“你没有 Git!”,还会显示一条错误消息:
git: command not found
是否有任何方法可以在 bash 中使用逻辑运算符来模拟 try-catch/try-except 语句,除非在脚本中被告知这样做,否则它不会显示错误消息?
将 stderr
(错误流)重定向到 /dev/null
:
git -v 2>/dev/null || echo "You don't have Git!"
另一种选择是获取 git
命令的实际路径:
if gitcmd=$(command -v git)
then
echo "Git is at $gitcmd"
else
echo "You don't have Git!"
fi