2017-11-28 9 views
0

私はシェルスクリプトを書くのが初めてで、インターネットでチュートリアルを見ています。 今、私は最初のスクリプトを書こうとしています:シェルスクリプトは終了せず、私は手動でそれをkillする必要があります

#! /bin/csh 
echo "Hello World! \a \n" 
exit 0 

シンプルで正確に見えますが、端末にHello Worldが表示されますが、終了しません。シェルを停止するにはCtrl + Cキーを押す必要があります。

しかし、私はこれは私が最初の行は、スクリプトを実行するために使用する 何シェルを指定することであることを知って、正常に終了することができ、私は私を見つけるためにsetコマンドを使用

#! /bin/sh 
echo "Hello World! \a \n" 
exit 0 

を試してみてくださいデフォルトのシェルは/bin/csh

このサーバの他のユーザはすべてokです。 誰もが問題を解決する方法を知っていますか?私は友人が書いたシェルスクリプトを使うことができません。

+0

どちらのチュートリアルでは、Cシェルスクリプトについては非常に重要な何かを逃したか、チュートリアルでそれを逃しました。 –

+0

こんにちは、お返事いただきありがとうございますが、同じサーバー内の同じスクリプトですが、他の人のアカウントはOKです – pilistar0222

+0

'csh'と' sh'は2つの異なる言語です。この単純なケースでは、構文は似ていますが、一方の構文が他方の構文では機能しないと考えることはできません。 – tripleee

答えて

0

#!からシバンを変更してください。/bin/cshを#に!/bin/csh -f それは動作します! しかし、私はまだ同じサーバー上の他のユーザーがなぜshebangが/ bin/cshなしで存在するスクリプトを使用できるのか混乱しています-

私の〜/ .cshrcに何か間違いがありますか?

+0

私は '.cshrc'がこれを引き起こす可能性があるとは思っていませんが、時にはcshが奇妙です。' .cshrc'コードを表示してください。どのようにスクリプトを実行していますか? – cdarke

+0

.cshrcを削除しようとしましたが、まだ終了していませんでした。QQ – pilistar0222

+0

'.cshrc'を削除しないでください。重要な設定をすることができます。あなたは '.login'を持っていますか?もしそうなら、あなたの質問にそれを削除しないでください。 – cdarke

0

ポストのため申し訳ありませんが、別の答え再び

私はそれがそのように通常

終了の「ソースファイル名」 でスクリプトを実行する場合は、多分私の子シェルは正常に閉じることができないいくつかの理由がありますことを発見そしておそらくループの中に?

+1

私はそれがこのhttps://stackoverflow.com/questions/35708942/tcsh-script-does-not-exitのような同じ問題であることを発見し、ちょうど.historyを削除しても問題ありません – pilistar0222

0

あなたのスクリプトを実行し、画面のコマンドを使用することができます

$画面./script.sh

あなたは左のプロセスがまだ実行されていることがわかります。

$画面-r

関連する問題