0

誰かがこのエラーの意味を説明してもらえますか:

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

これは私のスクリプト ランクです。

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

私が抱えている問題は#! /bin/tcsh -f 、Windowsで作業している最初の行にあると思います! しかし、Windowsエディターでスクリプトを書いた後、dos2unixランクを使用して変換しました。何が問題なのか、事前に助けてくれてありがとう

4

2 に答える 2

3

dos2unix私はあなたが働いたとは思わない。ハッシュバン行の最後にまだ\r気に入らない a があるようです。を見て/bin/tcsh -f\r、それを と解釈し/bin/tcsh -f -\r、エラー メッセージを出力しようとしているようです。

Unknown option: `-\r'

これ\rにより、終了引用符が行の先頭に表示されます。ファイルの内容を正確に確認したい場合は、cat -A ./rank隠し文字をすべて出力してみてください。あなたはおそらく見るでしょう

#! /bin/tcsh -f^M$
于 2010-05-31T16:10:02.413 に答える
0

Linux ボックスに tcsh をインストールしてそのスクリプトを実行したところ、うまくいったので、改行が間違っていると思います。

このエラーは、tcsh シェルが呼び出されたときに無効なパラメーターを受け取ったことを意味しているようです。それが取得するのは、パラメーター リストとしてのスクリプト全体だと思います。-f を -g (tcsh パラメーターとして認識されない) に変更しようとしたところ、次のようになりました。

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

無効なパラメーターの名前が引き続き表示されることに注意してください。

それかあなたのtcshが間違って始まります。tcsh シェルを開始するときに、デフォルトのパラメーターを指定することができます。始めてみましたか?

しかし実際には、tcsh を学ぶ唯一の理由は、古い tcsh スクリプトを維持する必要がある場合です。それでも、可能であれば、それらを他のスクリプト言語に変換することから始めます。シェル スクリプトを学びたい場合は、bash または bourne シェルを試してください。tcsh に腹を立てる理由はたくさんあります。

于 2010-05-31T16:09:54.790 に答える