未知错误

未知错误

问题描述:

有人能解释我这是什么错误意味着:未知错误

> ./rank lines.in 
'nknown option: `- 
Usage: tcsh [ -bcdefilmnqstvVxX ] [ argument ... ]. 

这是我的脚本排名:

#! /bin/tcsh -f 
set line = `cat ${1}` 
echo $line 

我认为,这个问题我已经是第一行#! /bin/tcsh -f 我正在研究Windows!但我编写脚本在Windows编辑器后,我转换它使用dos2unix排名,可能是什么问题,预先感谢任何帮助

+1

您是否真的必须使用tcsh而不是bash或Bourne shell? tcsh对于脚本编程非常糟糕,并且有很多缺陷。当我使用它时,它在90年代已经很差了! – Makis 2010-05-31 15:52:46

+0

我知道,但这只是我学习的一部分,我想了解基础知识,所以你能帮助我吗? – lego69 2010-05-31 15:54:16

我不认为你的dos2unix工作。看起来你仍然有一个\r在它不喜欢的散列爆炸线的末尾。它看起来像是看到/bin/tcsh -f\r,解释,作为/bin/tcsh -f -\r,然后试图打印错误消息:

Unknown option: `-\r' 

\r导致最终报价出现在该行的开头。如果您想要查看文件中的内容,请尝试cat -A ./rank以打印所有隐藏的字符。您可能会看到

#! /bin/tcsh -f^M$ 

我安装tcsh到我的Linux机器并运行该脚本,它的工作,所以我猜你的换行符是错误的。

这个错误似乎意味着当调用tcsh shell时它会收到无​​效的参数。我认为它得到的是整个脚本作为参数列表。我试图改变-f来-g(不会被识别为tcsh的参数)和我:

Unknown option: `-g' 
Usage: tcsh [ -bcdefilmnqstvVxX ] [ argument ... ]. 

注意如何还告诉我无效参数的名称?

要么你的tcsh开始出错。启动tcsh shell时可以给出默认参数。你尝试过开始吗?

但是真的,学习tcsh的唯一原因是如果你需要维护一些旧的tcsh脚本。即使如此,如果可能的话,我会先将它们转换为其他脚本语言。如果您想学习shell脚本,请尝试使用bash或bourne shell。有很多reasons为什么tcsh会让你生气。