Answers:
没有替代方法,但是如果您确实需要大括号,则可以同时使用两者:
if true ; then {
something
} fi
它将不必要的显式支撑命令组用作then
块的主体。花括号中的任何命令都将在then
运行时在当前shell中执行,就像花括号不存在一样。
我一般不会推荐这种样式,也不会为其他人需要阅读的代码推荐这种样式,但是它确实为您提供了所需的花括号,并且如果您使用的是需要花括号或这样的事情。
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
–基本上,当您使用bash
足够时,标准 语法就足够熟悉了,因此没有太大的问题。
你似乎在寻找的C shell(csh
,tcsh
,等...)。请注意,专家建议您不要进行编程。
我不确定您认为不吸引人的部分是否是以下事实then
?如果是这样,请考虑使用以下样式:
if condition; then
stuff
fi
我必须承认,像fi
for if
和esac
for case
(但不是elihw
for while
)这样的拼写声明名称倒是有点古怪。但这是标准的Bourne shell,是您可以使用的最可移植的shell语法。
then
吸引人的地方,只是我的编辑器将突出显示对应的{}
对,这在出现某种错误时非常有用,因为这样我就可以轻松查看所有if
语句并查看是否出错。
vi
的%
命令跳转到匹配的花括号/括号/括号。我同情。使用Python进行编程时,我想念vi
的%
命令。
也许这在眼睛上更容易:
[ condition ] && {
# statement 1
# statment 2
# ...
}
除此之外,请习惯它。使用语言的习惯用法。
以下是附近。而且很奇怪
: if; { code; } && {
code
}
我个人从不喜欢...
if true; then
more;fi
...形成我自己。当控制字引导时,我喜欢它。对于我来说,盛行的...;then
形式完全是奇怪的。
if this && that
then do these things too
else i will probably get upset
fi
这几乎完全与您的要求相反,但这是另一种方式。您还可以根据需要将任何所需的重定向添加到该fi
行,它们将应用于整个块。
if(...) {
,即在与if
C语言类似的行中保留开括号。
if
命令的继续,即使在下一行也是如此。
;
在这种情况下,您必须使用delim。这就是为什么他们这样做。
:
内置shell,只是这样一行代码就可以在字节上更接近于C语法,无论如何都不应鼓励。
这是一种方法:
[ "$var" = "find" ] && echo "found"
等效于:
if [ "$var" = "find" ]; then
echo "found"
fi
{...}
在周围放一些echo "found"
,然后您将朝着正确的方向前进。