csh(Cシェル)のevalに関して

このQ&Aのポイント
  • csh(Cシェル)のevalを用いて、インクルード的な操作を行いたいが、「コマンドが見つかりません」というエラーメッセージが表示される。
  • 原因を調べるためにネットで情報を検索したが、同じように記述しているつもりなのにエラーが発生している。
  • cshの初心者としては、使い方がまだ不慣れなのか、環境のせいなのかが判断できない。環境から学ぶことを考えている。
回答を見る
  • ベストアンサー

csh(Cシェル)のevalに関して

evalを用いてインクルード的な事を行いたいのですが、「コマンドが見つかりません」が出てきて困っています 原因はなにがあるのでしょうか? 色々ネットで調べて同じように記述したつもりなのですが csh初心者で申し訳ありませんが 使い方が悪いのか、環境が悪いのか?判断できません 環境は別の人に作って貰ったんで、環境なら環境から勉強していきたいと考えてます ■TEST010.csh #!/bin/csh echo "TEST010-Step0010" eval `./TEST000.csh` echo "TEST010-Step0020" echo " set root_path $root_path;" echo "TEST010-Step0090" ■TEST000.csh #!/bin/csh set lcmoji01 = /export/home/tbn/km echo "set lcmoji01 $lcmoji01;" ■実行結果 > csh TEST010.csh TEST010-Step0010 ^M: コマンドが見つかりません。 TEST010-Step0020 lcmoji01: 未定義の変数

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

改行コードかなぁ? TEST000.csh 単独では動きますか? でも, source じゃダメなの?

Anzu4699
質問者

お礼

ありがとうございます、どんぴしゃ!改行コードでした 「文字=日本語(EUC)/改行=LF」に、直したら動きました 非常に助かりました。

関連するQ&A

  • CSHの環境変数の設定

    CSHで外部で定義したconfigファイルから変数を読み込み そのシェル及び子シェル内で有効な変数として使用したのですが どのような方法がありますでしょうか? 以下の方法だと親シェルからでは子シェルで設定した変数が読み込めないため困っています。 config.csh #!/bin/csh -f setenv AAA aaa test.csh #!/bin/csh -f set APP_ROOT = `dirname $0` cd $APP_ROOT set CONFIG_FILE=$APP_ROOT"/config.csh" echo $AAA

  • cshのパス名指定子

    cshプログラムの :t(:gt, :h ...)などパス名指定子の仕様に関して教えて頂きたく思い投稿いたしました。 これらの演算子はフルパス表示からフアイル名部の文字列を 取り出す際に(/bin/ls-->ls)単に最後のスラッシュより前の部分を省略するという処理ではないのでしょうか? 例1のような場合はOKなのですが例2のような場合は利かないのです!! 変な引数を与えられた場合にバッチスクリプトの使い方をechoするところで$0を使いたいのですが、このコマンドはどのような場所から実行されるか分からないので、:t を用いてバッチファイル名だけを表示させたいと思っています。 [1: OK例] set qqq = (/opt/sfw/etc/* ) echo "$a:gt" -<結果>--- enscript.cfg esd.conf fnrc ftpaccess ftpconversions ... [2: NG例] test.csh #! /bin/csh -f echo "usage of $0:t" --<結果> --- usage of /export/home/matumoto/study/csh/dirFlag.csh:t 以上、宜しくお願いいたします。 ※ 作業はsolaris 8で行っています。

  • Perl から csh 実行

    やまとです。 いつもありがとうございます。 Perl + csh を同時(?)に実行する方法を教えてください。 OSはSunです。 具体的にどのような処理を行いたいか簡単に説明しますと。 1.Perlでcshを実行(system関数?)し、cshで環境変数をセット(source)する。 2.cshで環境変数をセットしたら、ファイルを出力する処理が行われます。 3.Perlでcshによって出力されたファイルの内容を画面に表示します。 以下ソースを掲載します。(抜粋して) ================================================== = Perl ( test_perl.pl ) $data = "ABC"; $ret = system(`test_csh.sh $data`); ・ ・ ファイル(test.log)を開き、読込、画面に表示します(まだ作成してません。) ================================================== = Csh ( test_csh.sh ) source test_source.sh echo $1 > test.log ================================================== = test_source.sh setenv CLASSPATH .:/aaa・・・・・・ ↑ PATHの設定を行ってます。 ================================================== 画面に、「ABC」と出力させたいのです。 Perlからcshが実行されていないように思えるのですが、 Perlのsystem関数の使い方が誤っているのでしょうか? それとも、ClassPath等の設定をしなければならないのでしょうか? ちなみにコマンドから、 # test_csh.sh ABC と実行しますと、ファイルが出力され、かつ、sourceも実行されています。 Perlから実行する方法を教えてください。 説明が不十分であれば、補足いたしますのでご指摘ください。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • シェルの変数セットについて

    どなたか教えてください。 以下のようなUNIXのシェルを作ってみたのですが変数がうまくセットされません。 これは仕様なんでしょうか??? シェルはkshでシェルの中でsuしているユーザはcshです。 例: ==test.sh== #!/bin/ksh A1="test test" su - user1 <<EOF echo "A1 :" $A1 set A2 =(test test) echo "A2 : " $A2 EOF exit ==実行結果== %./test A1 : test test A2 : %

  • cshからperlを呼び出しファイルに出力

    いつもお世話になっております。 cshからperlを呼び出しperlが出力する内容と入力項目を実行しているcsh内部で行ない結果をファイルへ出力したいのですが、そのような事ができるのでしょうか? ---------- cshファイル内 #!/bin/csh echo "●perl a.pl を実行します" | tee a.log perl a.pl ---------- perlファイル内 (perlがわかりませんので、perlの内容をcsh形式で記述させていただきます) (1)echo -n "日付を入力して下さい" (2)echo "⇒ " (3)set INPUT_DATE = $< (4)echo "日付:$INPUT_DATE " exit 0 ---------- cshから実行されたperl(csh)の内容[(1)(2)(3)(4)]をファイル(| tee a.log)へ出力することが可能でしょうか? ご存知の方がいらっしゃいましたらご教授願います。

  • cshでsubstr

    ヤマトです。 cshの文字列分割について質問します。 環境はRed Had Linux7.2です。 set DATA = A01/B/テスト文字列 のデータの5文字目の文字列は何か取得したいのですが、 substr($DATA,5,1)みたいな書き方は、 awkを使用してできるのでしょうか? ===sample.sh一部抜粋=== set DATA = A01/B/テスト文字列 set AAA = substr($DATA,5,1) ←(?) echo $AAA ===結果=== B 教えて頂けると有り難く思います。宜しくお願いします。

  • csh で入れ子変数

    csh で入れ子にした変数を使いこなせません。 例えば、 set i=0 set n=9 while ( $i <= $n ) set a_${i}=${i} (← 入れ子にした変数) cat <<EOF >>out.txt eval echo '$'a_${i} EOF end 期待している出力としては、out.txt に 1 2 3 ... としたいのですが、実際には「変数名の頭は英数字で」と 怒られ、うまくいきません。ご教授していただけないでしょうか?よろしくお願いします。

  • cshのエラー、どういうこと?

    シェルスクリプトはまったくの初心者です。 書籍についてきたCDに入っていたシェルスクリプトを実行させようとすると、次のエラーが出ます。 'nkown option: `- Usage: csh [ -bcdefilmnqstvVxX ][ agument ...]. そのスクリプトの出だしはこんな感じです。 #! /bin/csh -f if ($2 == "") goto nosize if ($2 == "n") catsiz n d $2 $1 if ($2 == "n") catsiz n d $2 sfstor if ($2 == "s") catsiz s d $2 $1 if ($2 == "s") catsiz s d $2 sfstor ・ ・ web上の入門サイトなどにあるのを参考に #! /bin/csh -f echo "you typed $1." というようなのを作ってみたら、これはちゃんと動きます。 パスの設定等にも問題はないと思っているのですが… どなたかこのエラーを回避する方法を教えてください。

  • フリーソフトMASM32に関する質問

    MASM32は、環境変数は、自分で設定しなければならないみたいなので、環境変数を以下のように設定したのですが MSDOSで、コンパイルのコマンドを打つと、エラーがでます これはどうすれば解決するのでしょうか ついでに使ってるOSはMeです ↓が付け加えた環境変数と、コンパイルのコマンドです SET PATH=C:\MASM32\BIN;%PATH% SET INCLUDE=C:\MASM32\INCLUDE;%INCLUDE% SET LIB=C:\MASM32\LIB;%LIB% コマンド ml /c test.asm

  • UNIX Cシェルで実数の比較

    UNIX Cシェルで実数の比較がしたいのですが、 うまくいきません 以下のような結果になります。 うまく判定するにはどうすればよいのでしょう #!/bin/csh -f set CONSIZE=-0.01 echo "CONSIZE = $CONSIZE" @ CONSIZE = $CONSIZE if( $CONSIZE < 0.0 )then echo " 0以下;;; $CONSIZE" exit endif 実行 CONSIZE = -0.01 @: 数値形式が正しくありません。