プロが教える店舗&オフィスのセキュリティ対策術

たとえば、以下の3つの情報、
while(1)
ps ;sleep 10
end
同様に
whils(1) ls <RET> sleep 10 <RET> end <RET>
while (1) date <RET> sleep 10 <RET> end <RET>
を別windowでモニターさせるためにwindowを起動してコマンドを実行させるためのシェルスクリプトを作成させたいのですが、
kterm -e ls
などとすると実行した時点で終了してしまいます。
また上記をls.csh などとして
kterm -e
としてみると
kterm: Can't execvp bbb.csh
などとエラーが出てしまいます。
どのようにしたら宜しいのでしょうか?
以上宜しくお願いします。

A 回答 (3件)

スクリプトがcシェルだということを認識できてないような気がします。



$ kterm -e /bin/csh ls.csh

とcshの引数としてファイル名を指定するか、ファイルの先頭に

#!/bin/csh

と記述しておけばcシェルスクリプトだということを認識してくれます。

cshコマンドのパスは

$ which csh

で自分の環境のものを確認できます。

この回答への補足

有難うございます。上手く行きました。やはりcshである事を認識できなかったようです。
実は ls.csh の先頭には #! /bin/csh -f を指定していた筈なのですが。。。

補足でもし分かれば教えて頂きたいのですが、ls.csh相当の記述を別のプログラムを呼ぶのではなく、ktermを起動するshellスクリプトの中で記述しようとするとどのような記述になるのでしょうか?

以上、宜しくお願いいたします。

補足日時:2004/07/15 14:32
    • good
    • 0

>補足でもし分かれば教えて頂きたいのですが、ls.csh相当の記述を別のプログラムを呼ぶのではなく、


>ktermを起動するshellスクリプトの中で記述しようとするとどのような記述になるのでしょうか?

cshでなく、shを使えば、
kterm -e sh -c "while sleep 10;do ps;done"
kterm -e sh -c "while true;do ps;sleep 10;done"
のように出来ます。cshはマルチステートメント(1行に複数コマンドを書く)機能が弱いので駄目です。
    • good
    • 0
この回答へのお礼

有難うございます。この辺りにやはりシェルスクリプトの限界があるのですね。
クリアになりました。どうも有難うございます。

お礼日時:2004/07/22 01:38

#1の方の補足です。


ファイルの先頭に
#!/bin/csh
と書いて、
kterm -e ls.csh
で実行するためには、事前に、chmod +x ls.csh と実行可能ファイルにする必要があります。

kterm -e /bin/csh ls.csh
の場合はその必要が無いのでわかりやすいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
kterm -e /bin/csh xxx
で成功しました。
ありがちなミスを明確に指摘して頂き助かりました。
有難うございました。

お礼日時:2004/07/15 14:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!