使用错误消息退出bash脚本的单行内容

时间:2013-10-22 10:27:16

标签: bash

我想用一个更干净,不那么难看的单线来完成测试:

#!/bin/bash
test -d "$1" || (echo "Argument 1: '$1' is not a directory" 1>&2 ; exit 1) || exit 1

# ... script continues if $1 is directory...

基本上我是在追求不复制exit的东西,最好不会产生一个子壳(因此看起来也应该看起来不那么难看),但仍然适合一行。

1 个答案:

答案 0 :(得分:20)

没有子shell且没有重复exit

test -d "$1" || { echo "Argument 1: '$1' is not a directory" 1>&2 ; exit 1; }

您可能还想参考Grouping Commands

  

{}

{ list; }
     

在大括号之间放置命令列表会导致列表在当前shell上下文中执行。没有创建子shell。该   需要以下分号的分号(或换行符)。