【发布时间】:2016-11-01 14:18:00
【问题描述】:
我对 Linux 上的 shell 脚本非常陌生(目前使用 Ubuntu)。 我编写了以下简单的脚本(命名为 yourName.sh):
#!/usr/bin/tcsh -f
echo "What is your first name?"
set firstName = $<
echo "What is your last name?"
set lastName = $<
echo "Hello $firstName $lastName"
现在,当我使用
运行脚本时bash yourName.sh
我收到以下错误:
What is your first name?
yourName.sh: line 3: syntax error near unexpected token 'newline'
yourName.sh: line 3: 'set firstName = $<'
当我使用tcsh yourName.sh 运行相同的脚本时,一切正常。
显然,详细的答案值得赞赏,但如果有人甚至可以向我推荐一篇解释 'bash' 和 'tcsh' 之间差异的文章,那将是一个巨大的帮助。
【问题讨论】:
-
它们是两个不同的shell,具有不同的语法。我不确定你在期待什么。
-
您可能需要考虑将学习精力花在 tcsh 脚本之外的其他事情上。这样的技能充其量只能被认为是深奥的,如果你被要求编写 shell 脚本,bourne 或 bash 将是几乎所有环境中的最佳选择。还要考虑到有人提出csh is actually considered harmful。虽然 tcsh 不完全是 csh,但它具有许多结构限制。