誰かがこのエラーが何を意味するのか私に説明できます:
> ./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は2私はあなたのことを思っていません dos2unix
働いた。それはあなたが「まだ持っているようだ」 r
hash-bang行の最後には、「t t。好きではありません。 /bin/tcsh -fr
として解釈する /bin/tcsh -f -r
その後、エラーメッセージを表示しようとします。
Unknown option: `-r"
ザ r
行末に引用符が表示されています。ファイルの内容を正確に確認したい場合は、 cat -A ./rank
隠し文字をすべて印刷します。あなたはおそらく見るでしょう
#! /bin/tcsh -f^M$
回答№2の場合は0
私は自分のLinuxマシンにtcshをインストールしてそのスクリプトを実行し、それがうまくいったので、改行は間違っていると思います。
エラーは単にtcshがシェルが呼び出され、無効なパラメータを受け取ります。私はそれが得られるのはパラメータリストとしてのスクリプト全体であると思います。 -fを-gに変更してみたところ(tcshパラメータとして認識されません)、次のようになりました。
Unknown option: `-g"
Usage: tcsh [ -bcdefilmnqstvVxX ] [ argument ... ].
それでもまだ無効なパラメータの名前が表示されることに注意してください。
それかあなたのtcshのどちらかが間違っています。 tcshシェルを起動するときにデフォルトのパラメータを指定することは可能です。始めてみましたか?
しかし、本当に、tcshを学ぶ唯一の理由はあなたがいくつかの古いtcshスクリプトを維持する必要があるならば。それでも、可能であれば、それらを他のスクリプト言語に変換することから始めます。シェルスクリプトを学びたい場合は、bashまたはbourneシェルを試してください。沢山あります 理由 なぜtcshは怒らせるのでしょう。