0

簡単なことをするためのスクリプトを作成しようとしています。yes または no を入力して、質問に答えるようにユーザーに促す必要があります。スクリプトは csh 用に作成されていますが、デフォルトのユーザー シェルが bash の場合は機能しません。私の環境は Red Hat Enterprise Linux 5 です

#!/bin/csh -f
echo -n Type yes to continue
set answer = $<
#...

このコードは csh では正常に機能しますが、bash では機能せず、次のエラーが出力されます。

syntax error near unexpected token 'newline'
bash 'set answer =$<'

両方のシェルで同じスクリプトを機能させる必要があります(ファイルの先頭に置くのが目的だと思いました#!/bin/csh!)

スクリプトを変更して bash で動作させる方法がよくわかりません。私を手伝ってくれますか?どうもありがとうございました。

4

1 に答える 1

2

csh と bash 以外に 2 つの異なるシェルを考えるのは難しいでしょう。それらは異なる言語であり、csh コードが bash で動作することを期待することはできません。

bash ではシェル組み込み関数を使用して STDIN から読み取りread、csh ではコンストラクトを使用します$<。異なる言語。

両方のシェルで同じスクリプトを機能させる必要があるのは なぜですか? スクリプトの先頭に配置#!/bin/cshすると、c シェルが実行され、使用#!/bin/bashすると bash が実行されます。よくある間違いは、空白またはその他の文字を#!.

于 2013-01-06T20:06:56.010 に答える