• 締切済み

shで、パスがとおりません

シェル内の リダイレクトのパスが通らない原因は何でしょうか? ◆シェル実行時のエラー bash: ./bb.sh: bad interpreter: No such file or directory ◆シェル(PostgresqlへCSVデータ取込) #!/bin/sh /usr/local/pgsql/bin/psql -d swan2 -c "copy abctbl_wk from stdin using delimiters ',' with null as ''" < ./csv/abcTBL.csv

みんなの回答

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.3

> bad interpreter: No such file or directory このメッセージは普通は#!の後のプログラム(インタープリタ)が無いときに、出ると思うのですが。 改行コードがおかしくなっていないか、確認してみてはどうでしょう。 http://www.zdnet.co.jp/help/tips/linux/l0491.html 制御コードは、 cat -t bb.sh で表示されるはずです。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.2

> それが、./bb.shはカレントに存在するのです・・ 間違いなくカレントに存在する./bb.shを実行しようとしているのでしょうか?ディレクトリが移動して、その移動した先で./bb.shしようとしていないでしょうか? 追求するならその辺でしょうか・・・

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

./bb.sh が実行カレントディレクトリに存在していないのだと思います。 パスが通っていれば、bb.shだけでよいですよね? ./bb.shと、カレントディレクトリで実行しようとしてます。 問題は、どこで、bb.shを呼び出しているかですが・・。 Postgresqlはつかったことがないのでこの辺は、他の方にゆだねることとします。

matchori
質問者

お礼

ありがとうございます。 それが、./bb.shはカレントに存在するのです・・ 何人かに見てもらったのですが皆目つかずで。 結局、シェルはやめて、コマンドプロンプトからの実行にしました。

関連するQ&A

  • bad interpreterで、シェルが使えません(T_T)

    RedHat9ではよく以下のような胃の痛いような エラーがでます。 rootでシェルが実行できないのですが、 どうすれば実行できるでしょうか? ■1.shというシェルファイル #!/bin/sh /bin/touch 1 ■1.shを実行するとエラーになります。。 # ./1.sh : bad interpreter: そのようなファイルやディレクトリはありません ■cronでも動きません。。 /bin/bash: 1.sh: /bin/sh: bad interpreter: No such file or directory

  • シェルスクリプト(Bash偏)の実行ファイルに関するご質問があります。

    シェルスクリプト(Bash偏)の実行ファイルに関するご質問があります。 ファイル名を変更するシェルスクリプトをbashで行おうとプログラムを作成したのですが、 実行するとbad interpreter: ディレクトリではありません とメッセージが出て終了します。記述に誤りがあるのか、実行の仕方が悪いのか分かりません。教えて下さい。 シェルの記述内容は ファイル名をtest.sh #!/bin/bash/ -f mv A.txt A.ori exit 実行方法として #>chmod x+a test.sh #>./test.sh で行いました。そうしたら、bad interpreter: ディレクトリーではありません とメッセージが出ます。 ちなみに #>. test.sh で実行するとターミナルがシェルの実行と同時に閉じてしまいますが、シェルを実行したディレクトリーを確認すると、処理が終わっておりました。

  • linuxのpathと別名的な事について

    linuxのpathと別名的な事について os:cent os postgresをインストールした環境があります。 ある環境では /usr/local/pgsql/bin/にpsqlがいて シェルで「/usr/local/pgsql/bin/psql」と記述しているスクリプトがあります。 これを別の環境に持っていったのですが、そこでは /usr/bin/にpsqlがいます。 全部書き換えるのも面倒ですので、 「/usr/local/pgsql/bin/psql」と書かれた内容を サーバーの設定で「/usr/bin/psql」と読みかえて動いてくれれば助かります。 要するに、 実行する環境と、試験する環境でパスが異なるので、 スクリプトに手を付けずに試験環境の設定を操作して試験がしたいという事です。 可能でしょうか?

  • シェルスクリプトの作り方

    OSはVineで、bashシェルです。 シェルスクリプトの作り方ですが、 1.ファイルを作る。 例えば、 #!bin/sh cd tmp このとき、ディレクトリはどこでもいいのでしょうか? 2.権限を付ける。 chmod u+x filename 3.実行 ./filename 他に気をつけることはないでしょうか? 実行すると、 bash: ./filename: bad interpreter: そのようなファイルやディレクトリはありません となってしまって、どうしても実行できません。

  • シェルスクリプト実行で”そのようなファイルやディレクトリはありません”と出ます。

    以下の単純なシェルスクリプトを実行しようとしています。 ------------------- #!/bin/sh echo ok ------------------- そのとき、 bad interpreter: そのようなファイルやディレクトリはありません と出てしまいます。 ・which sh で確認すると /bin/sh です。 ・Windowsで作ったファイルをFTPのアスキーモードで転送しています。 (ものすごく単純なミスをしてるのかもしれませんが、) よろしくお願いします。

  • (Linux、データベース初心者)スクリプトを実行するとPermiss

    (Linux、データベース初心者)スクリプトを実行するとPermission deniedが発生します。 Postgresql psqlに関して よろしくお願いします。 UbuntuサーバにインストールしたPostgresqlに対し、スクリプトを実行してcsvファイルをインポートしようと考えています。 その際にPermission deniedが発生しテーブルにデータが入りません。 以下にスクリプトファイルとエラーメッセージを掲載します。 <test.sh> #!/bin/bash #接続文字列 export PGHOST="ホスト名” export PGPORT="ポート番号" export PGDATABASE="データベース名" export PGUSER="ユーザー名" export PGPASSWORD="パスワード" PSQL='COPY bat_test FROM ' '''/test/test.csv''' ' with DELIMITER ' ''',''' echo "$PSQL" | psql echo "commit" | psql <以上、test.sh> <エラーメッセージ> test.sh:/test/test.csv:Permission denide <以上、エラーメッセージ> インポートしたいファイルの権限等は確認しましたがわかりませんでした。 何が悪いのかご指摘いただければ助かります。 どうか、よろしくお願いします。

  • PostgreSQLをCentOS5にインストールしました。

    閲覧有難うございます。 質問内容なのですが、Postgresqlをインストールしたのですがpostgresql.confとpg_hba.confが見つかりません。 OSはCentOS5です。 インストール方法は以下の手順で行いました。 # /usr/sbin/adduser postgres # chown postgres:postgres /usr/local/pgsql # mkdir /usr/local/src/postgres-8.2.6 # chown postgres:postgres /usr/local/src/postgresql-8.3.7 # su - postgres # cd /usr/local/src # tar xfz /usr/local/src/postgres-8.2.6.tar.gz # cd /usr/local/src/postgres-8.2.6 # ./configure # make # make install また、 [root@ ~]# su - postgres -bash:  LD_LIBRARY_PATH=/usr/local/pgsql/lib: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found [postgres@ ~]$ のようなエラーがはかれるようになりました。 どうか皆様のお力をお貸しください。

  • [シェルスクリプト内で bashコマンド後のコマンドが実行されない]

    [シェルスクリプト内で bashコマンド後のコマンドが実行されない] 以下の様にシェルスクリプトを記述するとコマンド2が実行されません。 #! /bin/sh コマンド1 bash コマンド2 bash環境でコマンド2を実行させるにはどうしたら良いのでしょうか?

  • rubygems, railsのインストール

    ruby on railsに詳しい方で分かる方がいればご教授いただきたいです。 先日までruby1.9.3, rails3.2.4を使用できていたのですが、他にいろんなものをインストールをしていた時に何か変になってしまったのか、突然railsが使用できなくなってしまいました。 OSはMac OS X 10.7.5です。 rails、gemの場所を調べるとopt/local/bin/となっているのですが、rails-vとすると -bash: /opt/local/bin/rails: /opt/local/bin/ruby: bad interpreter: No such file or directory gem -vとすると -bash: /opt/local/bin/gem: /opt/local/bin/ruby: bad interpreter: No such file or directory となってしまって使えません。しかしrubyは正常に動いているようです。 何か分かる方がいらっしゃいましたら、お力を貸して下さると非常に助かります。 作業ができずに困っています。どなたか、お願いします><

    • ベストアンサー
    • Ruby
  • シェルスクリプトの1行目に#!を書いてもダメなのはなぜ?

    test.shというシェルスクリプトを #!/bin/bash echo "bash test" のように書き、chmod +x test.shを実行し、 test.shと入力すると、bash testが表示されるはずですが、 エラーbash: test.sh :command not found が出ます。which bashでパスを見ると /bin/bashなので、問題ないはずなんですが。 ちなみに、bash test.shと入力すると、正常に実行されます。 同様のことがperlスクリプト #!/usr/bin/perl print "perl test\n"; についても起こります。 何か設定がまずいのでしょうか? RedHatLinux7.2を使用しています。

専門家に質問してみよう