首页 > 解决方案 > 从最后执行的 bash 命令中获取单词

问题描述

我有一个这样的脚本:

git clone ssh://anothersite.com /home/user/another_directory

我需要检查命令是否有效,然后才能继续执行下一个命令。我以类似的方式解决了它:

if [ "$?" -ne 0 ]; then
echo "{$2} command failed.";
exit 1

我需要“克隆”这个词或另一个将在脚本中进一步遇到的词,而不是 {$ 2}。如果我替换 $ 0,那么它会给我我运行的脚本的名称,而不是我期望的命令“git clone”

标签: bashshell

解决方案


我需要检查命令是否有效

if.

if ! git clone ssh://anothersite.com /home/user/another_directory; then
   echo "Clone failed" >&2
   exit 1
fi

我需要“克隆”这个词或其他将在脚本中进一步遇到的词,而不是 {$ 2}

编写一个方便的包装函数并传递命令以作为参数执行。

failon() {
    if ! "$@"; do
       echo "Command failed: $*" >&2
       exit 1
    fi
}
failon git clone ssh://anothersite.com /home/user/another_directory

推荐阅读