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

hyd*_*yde 7 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...
Run Code Online (Sandbox Code Playgroud)

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

dev*_*ull 21

没有子shell而没有重复exit:

test -d "$1" || { echo "Argument 1: '$1' is not a directory" 1>&2 ; exit 1; }
Run Code Online (Sandbox Code Playgroud)

您可能还想参考分组命令:

{}

{ list; }
Run Code Online (Sandbox Code Playgroud)

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