gpt4 book ai didi

bash - tcsh 中的 IF 语句错误

转载 作者:行者123 更新时间:2023-12-04 05:24:18 28 4
gpt4 key购买 nike

通过 tcsh 执行 IF 语句时遇到问题。这对我来说很好-

#!/bin/bash
if echo `cal|tail -6|sed -e 's/^.\{3\}//' -e 's/.\{3\}$//' |tr -s '[:blank:]' '\n' | head -11|tail -10|tr -s '\n' ' '`|grep -w `date "+%e"`
then
echo "present"
else
echo "absent"
fi

这就是问题所在 -

#!/bin/tcsh
if echo `cal|tail -6|sed -e 's/^.\{3\}//' -e 's/.\{3\}$//' |tr -s '[:blank:]' '\n' | head -11|tail -10|tr -s '\n' ' '`|grep -w `date "+%e"`
then
echo "present"
else
echo "absent"
endif

出现这个错误-

if: Expression Syntax.
then: Command not found.

我真的需要它来使用“tcsh”运行

最佳答案

首先,您必须知道您可以找到两个不同的 shell 系列:

  • Bourne 类型的 shell(Bash、zsh...)
  • C 语法类型 shell(tcsh、csh...)

如您所见,Bash 和 tcsh 不属于同一个 shell 系列。因此,在 tcsh 上,if 语句与 bash 语句有点不同。在您的情况下,关键字“then”放错了位置。尝试将其放在“if”行的末尾:

#!/bin/tcsh
if(echo `cal|tail -6|sed -e 's/^.\{3\}//' -e 's/.\{3\}$//' \
|tr -s '[:blank:]' '\n' | head -11|tail -10|tr -s '\n' ' '`| \
grep -w `date "+%e"`) then
echo "present"
else
echo "absent"
endif

希望对您有所帮助。

关于bash - tcsh 中的 IF 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377152/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com