我对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'之间差异的文章,那将是一个巨大的帮助。
答案 0 :(得分:1)
我个人总是使用这篇文章来发现不同shell类型之间的语法差异:
链接:http://hyperpolyglot.org/unix-shells
我强烈建议你使用bash over tsch,特别是如果你是Linux的新手。它的用途更广泛,简而言之,更多人使用它,这意味着如果你遇到问题,那么触手可及的文档远远多于tsch。
答案 1 :(得分:0)
tcsh
和bash
有不同的祖先 - bash
是原始Bourne shell, sh的后代,而tcsh
是C shell, csh的后代}。它们在很大程度上是不相容的。
答案 2 :(得分:0)
这是你脚本的bash版本;要从键盘获取输入,请使用read命令。
echo "What is your first name?"
read -r firstName
echo "What is your last name?"
read -r lastName
echo "Hello $firstName $lastName"
read -r raw input - 禁用读取数据中反斜杠转义和行继续的解释