如何将三个语句合并为一个?

use*_*728 1 shell-script

我需要创建一个 .sh 脚本,这对我来说是新事物。我有一些例子可以借鉴,但我希望做得更好。

我看到这样的事情:

date -d $date | grep "Fri"
$status=$?
if [ ${status} == 0 ]; then
Run Code Online (Sandbox Code Playgroud)

是否可以将此片段折叠成一行以达到此效果?

if [ date -d $date | grep "Fri" = 0 ]; then
Run Code Online (Sandbox Code Playgroud)

我删除了双“=”,因为我知道它是多余的。

roa*_*ima 12

直接测试管道中最后一个命令的退出状态即可,

\n
if date -d "$date" | grep -F "Fri"\nthen\n    \xe2\x80\xa6\nfi\n
Run Code Online (Sandbox Code Playgroud)\n

我已将变量用双引号引起来$date,以防止 shell 无意中对它进行 split/glob 操作。我已经使用了grep -F不使用正则表达式的直接字符串匹配。

\n

但是,您也可以通过要求告诉您星期几来直接以与语言环境无关的方式编写此特定示例grep,而根本不需要:date

\n
if [ "$(date -d "$date" +'%w')" -eq 5 ]\nthen\n    \xe2\x80\xa6\nfi\n
Run Code Online (Sandbox Code Playgroud)\n