• ベストアンサー

シェルの実行ができません

TeraTerm上で [ora10gas@doao shell]$ ./get_daisya.csh 上のようにシェルを実行してみたのですが、 /bin/ls: 照合パターンに合いません. と表示されます。 これしか情報が出せませんが、こういうときはどこを確認したら解決できるか ご教授していただけませんか。 以上、よろしくお願いします

  • Oracle
  • 回答数4
  • ありがとう数1

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

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.3

現在のシェルがsh,bsh,bashのborn shell系でしょう。シェルプロンプトが$なので。 実行しようとしているget_daisya.cshは名前からしてcshの記述なのでしょう。 get_daisya.cshの先頭が #!/bin/csh となっていますか?ま、実行するときに csh ./get_daisya.csh としてみてください。 /bin/lsはbsh系とcsh系で動きが違いますから 現在のシェルと違うシェルを前提にしたシェルスクリプトの実行は気をつけてください。 私の回答が何のことか理解できないなら、まず、シェルの違いから勉強してください。

norishiget
質問者

お礼

助かりました。

その他の回答 (3)

  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.4

get_daisya.cshの中身がわからないとなんともいえません。 ちなみに、cshでlsを使用すると以下のように条件にマッチしないと出力されます。 $ ls a* ls: 照合パターンに合いません. ※aからはじまるファイルが存在しないので出力されます。 ちなみに、この場合はエラーコードは1です。 $ echo $? 1 シェルの中でマッチするファイルが存在しない時の処理がかかれてないのではないでしょうか? シェルの中でlsを使用している箇所を探し、実際にどんなコマンドを発行しているか確認してください。

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2

それ、シェルスクリプトとわかって実行していますか? 取り合えず、どこで、何がエラーになっているのか特定するのは、基本中の基本ですよね。 more ./get_daisya.csh で中身を確認。1行づつ実行確認してみよう。でエラーがでている/bin/lsの引数が何かわかったところで、1行実際に指定して行ってみましょう。その前にget_daisya.csh は、あなたの先輩か、周りの人が作ったのではないですか? その人にききましょう。

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

とりあえず文字コード (改行を含む) を確認してはどうだろうか.

関連するQ&A

  • シェルファイル内での「setenv」、「unsetenv」の実行 その2

    シェルファイルの先頭行に、 「#!/bin/csh」 と記述したところ「system: Undefined variable.」というメッセージが出力されてしまいました・・・。 どうしたらよいのでしょう?設定の問題なのでしょうか? よくわからないのですが、 「env | grep csh」 と実行してみると「SHELL=/user/bin/csh」という結果がえられるのですが・・・。

  • シェルの実行について

    シェル、コマンドを実行に関して質問があります。 シェル名だけ「シェル名」だけで実行できたり「./シェル名」としないと実行できなかったりしますが、この違いはどこからくるのでしょうか? また、「csh シェル名」とするばあいもありますが、これらの明確に違い(使い分け)が分かりません。 ご教授の程宜しくお願いいたします。

  • シェルファイル内での「setenv」、「unsetenv」の実行

    (UNIX環境) シェルファイル内にて 「setenv LANG ja_JP.SJIS」 「unsetenv LANG」 と記述し実行しようとしたのですが、 「setenv:not found」 「unsetenv:not found」 というエラーが出力されてしまいます・・・。 ちなみにコマンドをそのまま実行した場合は正常に処理されます。 kshにて実行されている為で、cshで実行しなければならないということでしょうか? 現在デフォルトにて何シェルが起動しているのか、どのようしたら分かるのでしょうか? 「env | grep csh」 と実行してみると「SHELL=/user/bin/csh」という結果がえられるのですが・・・。

  • php5でjavacを含むシェルの実行ができない

    こんにちは。シェル、php5初心者です。 まずはそれぞれのソースを記します。 j.sh ~~~~~~~~~~~~~~~~~~~~~~ #!/bin/bash javac Hello.java java Hello ~~~~~~~~~~~~~~~~~~~~~~ Hello.java ~~~~~~~~~~~~~~~~~~~~~~ public class Hello { public static void main(String[] args) { System.out.println("Hello, World"); } } ~~~~~~~~~~~~~~~~~~~~~~ test.php ~~~~~~~~~~~~~~~~~~~~~~ <?php $output = shell_exec('./j.sh'); echo "<pre>$output</pre>"; ?> ~~~~~~~~~~~~~~~~~~~~~~ 以上のプログラムを使用しtest.phpを実行したときにshell_exec関数によってWebブラウザ上にHello,Worldと表示させたいのですが、コンパイルすらされていないみたいです。どうしたらよいでしょうか。 端末から./j.shのようにシェルを実行するとしっかりとHello,Worldと結果が返ってくるのですが。 ちなみにjavacを含まないシェル(ls -l,cpなど)はphpから実行できました。 どうかよろしくお願いします。 os vine linux 4.3

    • 締切済み
    • PHP
  • Cシェルについて

    Cシェルについて #! /bin/csh ##! /bin/csh -vx setenv NOHUP '/usr/bin/nohup' set AAA_CSH = $NOHUP' XXX.sh file.txt &' ($AAA_CSH >> /dev/null) >>& err.log シェルスクリプトを作成して上記のとおりnohupでXXX.shを実行するように記述します。 エラーがあった場合、err.logに出力するように作成したつもりなのですが、 XXX.shがなかったとき、 「/usr/bin/nohup: XXX.sh:そのようなファイルまたはディレクトリはありません。」 と標準出力されてしまいます。 このエラーメッセージをerr.logに記述するようにしたいのですが、 どうしたらよいでしょうか? よろしくお願いいたします。

  • シェルスクリプトの書き方

    すみません、シェル初心者なのですが、急を用してまして質問させて頂きました。 シェルスクリプトで コマンドを実行する前に他のユーザにスイッチしてから 実行するというのを実現したいのですが・・・ #!/bin/csh コマンド1 コマンド2 ・・・ とコマンド1の前に su コマンドを実行させたいのですが、 パスワードを入力する際、対話式なので どう書いてよいか分かりません。 よろしくお願いします。

  • cygwinシェルスクリプト内でのエイリアス

    cygwinのterminal上で alias abc=ls abc とやるとlsを実行したことになるのですが、 内容が #!/bin/bash alias abc=ls abc のa.shというシェルを作り実行すると、 ./a.sh: line 3: abc: コマンドが見つかりません というエラーが出て実行してくれません。 解決策が分かる方よろしくお願いします。

  • PHPからシェルコマンドの実行

    PHPからシェルコマンドを実行したいのですが SSHやSCPコマンドが使えません。 phpからlsなどは問題なく実行できます。 具体的には以下のように書いています。 `scp test.log user@host:/home/hoge`; shell_exec()を使っても実行されませんでした。 環境は以下のとおりです。 PHP 5.4.17 CentOS 5.8 sshやscpコマンドをphpから実行するには何か特別な方法が必要なのでしょうか。 ご存知の方、教えてください。

    • ベストアンサー
    • PHP
  • Bシェルにてユーザの実行可否

    シェルにてrootユーザのみ実行が出来るようにしたいと思い、以下のようなシェルを書きました。 が、root以外のユーザでも実行が可能となってしまっています。実行する上でシェル、またはシェル以外で影響はあるのでしょうか?ご存知でしたらご教授願います。 ※今回はユーザID:user1で作成+実行しています。 ※このシェルのアクセス権限は"-rwxr--r--"としています。 #!/bin/sh UID=`whoami` if [ $UID -ne root ] then echo "実行はrootのみ" fi -以降、その他の処理が続く-

  • lsコマンドでforkできない

    Vine6.0の載ったマシン(node1とする)をlogin shellをzshにして使っています。 teratermなどを使って、node1にsshでログインし、lsコマンドを使用すると、 ls: fork failed: リソースが一時的に利用できません というメッセージが出て、lsが失敗します。zshをもう一度子シェルとして実行すると、 解決します。 他のコマンドは問題なく使えているので、lsが悪いのか、zshが悪いのかだと思うのですが、 理由はわかりますでしょうか? よろしくお願いします。