環境Sun5.6
ログインシェルをshからtcshにしたところ、cdのあとに存在しないpathを入力後、エラーが\数字三桁の連続で表示されるようになってしまいました。

シェルをshに変えると、コマンドが見つかりません。とエラー表示されます。

シェルをcshに変えると、ファイルもディレクトリもありません。とエラー表示されます。

tcshを使用したままの状態でエラーを普通に表示したいのですが、どうしたらいいのでしょうか?
解かる人はお答え下さい。宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

setenv LANG ja はそのままで、


setenv LC_MESSAGES C
ではどうでしょうか?
    • good
    • 0
この回答へのお礼

本当に大変有難う御座いました。
上記の記述通りにしたところ、うまくいきました。

5時間以上も悩んでいたので大変うれしいです。
有難う御座いました。

お礼日時:2001/10/23 22:04

日本語が文字化けしているのだったら、


setenv LC_ALL C
とすると、出力が英語になって文字化けしなくなりますよ。

この回答への補足

上記設定にした結果viで日本語入力できなくなってしまいました。
viで日本語入力をできる状態のまま、cdでの文字化けがしなくなる方法はないでしょうか?

補足日時:2001/10/23 21:15
    • good
    • 0
この回答へのお礼

setenv LANG jaの記述を上記記述に変えた所、
英語でエラーが表示されるようになりました。

大変有難う御座いました。

お礼日時:2001/10/23 16:03

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

このQ&Aと関連する良く見られている質問

Qcsh (tcsh)での環境変数の長さの制限について教えて下さい。

Solaris8 (SPARC)上でJavaでいろいろ開発をしているのですが、
シェルの環境変数の長さに制限があるようで困っています。
具体的には、あちこちに散在しているjarファイルを参照する必要
があるので、環境変数 $CLASSPATHが非常に長くなっていて、
現在の設定以上に CLASSPATHを追加しようとすると「Word too long」
というエラーが出て設定できません。
1つの環境変数の長さの制限を変更することは可能でしょうか?
もしくはなにか回避策があれば教えて下さい。
使用しているシェルは tcsh です。

Aベストアンサー

参考URLに tcsh の man を示します。
ここの最後の方に「制限」という章がありますが、そこにある
「単語は1024文字まで」という制限に引っ掛かってるんでしょうね。

まあ、tcsh であれば、ソースが有るわけですから、ソースを
いじってしまえば良いですよね。

もしくは、コンパイルや実行の際には bash を使う。コンパイルで
make を使っているんだったら、そこでシェルを指定すれば良いだけ
ですよね。

参考URL:http://www.linux.or.jp/JM/html/tcsh/man1/tcsh.1.html

QUNIX:シェルをshからkshへ替えられない

下記の方法で、shからkshへ切り替えるという設問ですが、shのままkshになりません。

1)echoコマンドで、export ENV=$HOME/Env/ksh_envを.profileへ追加
2)Envディレクトリ作成後、ksh_envへ下記を追加
  Set –o noclobber, set-o ignoreeof, set –o vi
3) chmodコマンドで、ksh_envを777変更
4)echoコマンドで、$SHELL=/bin/ksh
5) echoコマンドで、$SHELLを呼ぶと、kshになっている。

何を間違えているか教えて頂けますか?
宜しくお願いします。

Aベストアンサー

ログインシェルを変えたい、という話なら「 man chsh 」
単にkshを実行したいだけなら、通常通り kshを実行。

どちらにしても、環境変数SHELLはシェルを実行したときに自動で設定されるものです。
変更しても無意味です。
4)は不要です。

Qshのシェルスクリプトの演算方法について・・・

bashのシェルスクリプトについてもお聞きしたのですが、
その方法では演算ができない!ということになってしまいました・・・
こういうちょこっとしたところが違うのが嫌です・・・↓
bashの場合は
----------
bash$ a=1
bash$ a=$(( $a + 1 ))
bash$ echo $a
2
----------
となったのですが、shではエラーが出てしまいました・・・
また、shのスクリプトもbashのスクリプトもシェルスクリプトと呼ぶのでしょうか?

Aベストアンサー

sh には、シェルの機能として演算は含まれていません。
計算自体は、コマンド expr を使って、

sh$ a=1
sh$ expr $a + 1
2

のように行います。よって、質問文のコマンドのsh版は

sh$ a=1
sh$ a=`expr $a + 1`
sh$ echo $a
2

のようになります。
sh,cshなどでは、``(バッククォート)で囲んだ部分は、実行されその結果と置き換わるので、上記の2行目は a=2 と実行しているのと同じことになります。

sh,expr でどのようなコマンドが使えるのかは、

sh$ man sh
sh$ man expr
として調べてください。

------------------------------------------------------------
>また、shのスクリプトもbashのスクリプトもシェルスクリプトと呼ぶのでしょうか?

呼びます。

Qシェルの中から他のシェルを呼び出す

例えば、ひとつのシェルファイル( aaa.sh )の中に、
-------------------------
#!/usr/bin/csh
set HOME=/home/test/tmp
bbb.sh
-------------------------
と記述した場合、bbb.shで変数$HOMEを使いたいと思いましたが、
使えないようです。(HOME: 未定義の変数と表示されます)
どなたか、これ以外の方法で、このように
シェルからほかのシェルを呼び出して、変数も引き継がれるような方法ご存知ないでしょうか?
多分こーやれば、こうなるかも!みたいなご回答でも結構ですので情報提供をお願いします。

どうぞ宜しくお願い致します。

Aベストアンサー

たぶん環境変数は引き継がれます。
setenvを使えばいいように思います?

QSolaris5.6 bannerコマンドで文字列を流れるように表示するには?

Solaris5.6上の Cシェルプログラムで、
bannerコマンドと whileと、clearコマンド使用して
文字が流れるようにしたいのですが、いまいち上手く
いきません。
何か良い方法があれば教えて下さい。

Aベストアンサー

clearでなく、CRコードを使ってみた例です。1文字ずつ左から右へ流れていきます。

---------------
#!/bin/csh

set N=20
set STR=$1

while ( $N > 0 )
 printf "$STR\015"
 @ N= $N - 1
 set STR=" $STR"
 sleep 1
end
---------------

ただし「sleep 1」だと動きが遅いため、流れているように見せるためには、msec単位でwaitできるモジュールをC等で作るか、while文でnopループを作る必要がありそうです。

sleepの代わりのnopループ例:
---------------
 set foo=100
 while ( $foo > 0 )
  @ foo= $foo - 1
 end
---------------


このカテゴリの人気Q&Aランキング

おすすめ情報