• 締切済み
  • 困ってます

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

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数138
  • ありがとう数1

みんなの回答

  • 回答No.3

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

  • 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
  • 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」と読みかえて動いてくれれば助かります。 要するに、 実行する環境と、試験する環境でパスが異なるので、 スクリプトに手を付けずに試験環境の設定を操作して試験がしたいという事です。 可能でしょうか?

  • 回答No.2

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

共感・感謝の気持ちを伝えよう!

  • 回答No.1

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • シェルスクリプト(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 で実行するとターミナルがシェルの実行と同時に閉じてしまいますが、シェルを実行したディレクトリーを確認すると、処理が終わっておりました。

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

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

  • 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@ ~]$ のようなエラーがはかれるようになりました。 どうか皆様のお力をお貸しください。

  • (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 <以上、エラーメッセージ> インポートしたいファイルの権限等は確認しましたがわかりませんでした。 何が悪いのかご指摘いただければ助かります。 どうか、よろしくお願いします。

  • RedHat9にPostgreSQL構築できるが、再起動すると消滅

    WindowsXP内のVMWareに仮想マシンRedHat9を構築して便利に使っています。今回この中ににPostgreSQL構築しpostgresql-8.1.3.tar.gzを/usr/local/srcにダウンロード #useradd postgres #mkdir /usr/local/pgsql #mkdir /usr/local/pgsql/data #cd /usr/lcal/src #tar zxfv postgres-8.1.3.tar.gz #chown postgres.postgres /usr/locl/pgsql #chown -R postgres.postgres postgresql.1.3 #su - postgres $cd /usr/local/src/postgresql-8.1.3 $./configure $gmake $gmake install 以上で無事postgreSQLデータベースが完成 引き続きユーザpostgresで $/usr/local/pgsql/bin/initdb -D /usr/local/pogsql/data $/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data $/usr/local/pgsql/bin/createdb TestDB $/usr/local/pgsql/bin/psql TestDB で作成したTestDBに接続でき、テーブルも作りました。 ところがRedHat9をいったん再起動するとできている筈のTestDBに接続できなくなります。どこかにどこかに設定ミスがありますか。何かヒントをいただければうれしいです。 $/usr/local/

  • date型に空白を入れるとエラーになる

    現在、CSVファイルからCOPYコマンドを使用し、 データのINSERTを行いたいと思っております。 で試したところ、 COPY test from '/var/lib/pgsql/csv/insert.csv' USING DELIMITERS ','; とコマンドを入力した結果 ERROR: invalid input syntax for type date: "" CONTEXT: COPY test, line 1, column purchase: "" となってしまいます。 これを回避するためには、どうすればよいでしょう。 postgresqlは初心者なので、申し訳ございませんが 教えてください。よろしくお願いいたします。

  • シェル エラーについて

    Linux programming 3rd Editionと言う本にサンプルプログラムがあるんですけど、試しに使ってみたら /bin/sh^M: bad interpreter: No such file or directory と出てきました  通訳すると”下手な通訳:このファイルまたはディレクトリは見つかりません” /bin/sh^Mの^Mってなんですか?

  • linuxのシェルでファイル名に先月以前の日付があるのを削除したい

    linuxのシェルでファイル名に先月以前の日付があるのを削除したい bashでcshellでも良いのですが、 /pgsql/data/pg_log/ の下にたまったlog postgresql-2010-04-01-*.log postgresql-2010-03-31-*.log postgresql-2010-03-30-*.log などのうち、 先月以前の日付があるのを削除するスクリプトを作りたいのですが、上手くいきません。 ls postgresql*.logから全件数回して、if文で比較しようとしましたが、判定がうまくいきません。 何がネックになっているかと言いますと、 文字列「postgresql-2010-04-01-*.log」 文字列「postgresql-2010-04」をif文で比較すると、=の判定はできますが、 >や<で判定すると、全てthenになってしまいます。 文字の大小比較はできないようですね? また、 「postgresql-2010-04-01-*.log」 から、12文字目から7文字抜き出したいのですが、 substrのような事も出来るのかどうなのか分かりません。 bashでこういう事をするのはあまり向いていないのでしょうか? cshellとどちらが向いているでしょうか? あるいはパールなんかを使った方が良いのでしょうか? 当面のやりたい事をクリアする方法、および、ツールの選定についてご教授下さい。 以上、よろしくお願いします。

  • #!/bin/bash のラインでエラー発生

    お世話になります。 Linux初心者です。 下記のような***.shを作成し、./***.sh で実行すると、/bin/bash^M bad interperter: No such file or directory というエラーが発生してしまいます。 原因として考えられる事をご教授頂けないでしょうか? --------------------------------------- #!/bin/bash PATH=/usr/local/bin:/bin:/usr/bin for conf in /etc/webalizer*.conf do ~ ---------------------------------------

  • linuxにrailsのインストールができない。

    今CentOSにrailsをインストールしようとしているのですが、はまっています。 rubyはrvmでインストールできたので、gemでrailsをインストールしたのですが、 railsコマンドをうつと、「-bash: /usr/local/bin/rails: /usr/local/bin/ruby: bad interpreter: そのようなファイルやディレクトリはありません。」とでます。 これは昔railsを入れて、うまく動かなかったのでuninstallしたという経緯がある り、その設定ファイルがどこかにのこっているからだと思うのですが、でもrails のパスをどこにとおし直したらいいかわかりません(bash_profileかな?と思うのですが 、railsとうったときに何を参照していいいかわからない)。 何か気づいた点がありましたら、助言いただけると幸いです。

    • ベストアンサー
    • Ruby