• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.shの実行がうまくきません)

.shの実行がうまくきません

このQ&Aのポイント
  • Linux初心者のRedHat9ユーザーが、.shファイルの実行でエラーが発生しています。
  • ターミナルで直接コマンドを入力すると正常に動作するが、同じコマンドを.shファイルに記述して実行するとエラーが発生します。
  • 特定のコマンド(PATHの設定やsmbmount)を.shファイルに記述し実行すると、正常に動作しないエラーが発生しています。ログインはROOTです。

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

シェルスクリプトの改行コードがDOS形式になっているのでは。

参考URL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231014/
amoban
質問者

お礼

ありがとうございます。 その通りでした。 Winのテキストエディタでファイルを作成し、Linuxにコピーして使っていました。 一度消去し、同じ内容のものをLinuxのViエディタで作成したところ、 問題なく動作しました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • shからPL/SQLブロックを実行する方法

    Solaris上でshスクリプト中からPL/SQLを記述したファイルを呼び出して、Oracleのテーブルに対して操作したいのですが、 test.shファイル #/bin/sh sqlplus userid/password@ddzk test.sqlファイル DECLARE … BEGIN INSERT INTO table VALUES( …  ) END; / コマンドラインから $./test.sh を実行すると、 ./test.sh: sqlplus: 見つかりません。 と表示されます。 どなたかshスクリプトからPL/SQLで記述したファイルを実行する 方法をご存知の方、ご教示願います。

  • シェルスクリプトファイルからjavaを実行したい

    シェルスクリプトファイル(拡張子が.shのファイル)からJavaを実行したいのですが上手くいきません。 コマンドラインで直接 cd javaのファイルが置いてあるディレクトリへのフルパス を実行した後 java 実行するクラス名 引数 とすると上手く動きます。 上記2行をshファイルにコピペしてみましたが、エラーになり動きません。 エラーは : No such file or directory cdをしている行とcdで移動しようとしているディレクトリパス Exception in thread "main" java.lang.NoClassDefFoundError: 実行するクラス shファイルの1行目に #!/bin/sh や #!/bin/bash を入れてみましたが、どちらも挙動が変わりません。(エラーのまま) shファイルはUTF-8を文字コードにして改行はLFのみです。 また、javaコマンドを実行するとき -cp や -classpath 引数でjavaのファイルが有るディレクトリを指定してみましたが挙動が変わりません。 shの実行はコマンドラインから sh shファイル(絶対パスで) source shファイル(絶対パスで) でやってみましたが駄目でした。 javaのファイルが有るディレクトリに対してパスを貼ってみましたが挙動が変わりません。 コマンドラインからコピペしてshファイルを作っていますので、フォルダ名等のつづりミスの可能性は低いと思います。 何か設定が足りないのでしょうか? よろしくお願いいたします。

  • コマンドファイルからのFTP転送の実行について

    運用サーバからバックアップファイルを他のサーバに転送したく、 PHPからコマンドを実行する方法という下記のサイトを参考にPHPから実行 できないか模索しております。 http://piyopiyocs.blog115.fc2.com/blog-entry-760.html ftp.shで保存しておき、実行用のPHPに下記を記述し、 「<?php exec("/bin/sh ftp.sh"); ?>」 ftp.shと同じ階層にアップロードしてからphpファイルをブラウザから、 呼び出してみたものの、6GBあるはずのファイルが2GBほどしかアップロードされません。 ターミナルから、ftp.shを実行した場合は、 6GBでアップロードできております。 ●実行結果 ・PHP→ftp.sh:2GB(×) ・ターミナル→ftp.sh:6GB(○) ●PHP→ftp.shとターミナル→ftp.sh共に共通して、 ?Invalid commandという出力が行われます。 ?Invalid commandが出力されてはおりますが、 一応はファイルの転送が実行はされております。 PHPからの実行の場合は、PHPの容量制限かなにかが反映されてしまうのでしょうか。 PHPからの実行でアップロードファイルが途中で止まる現象を回避する方法は、ありますでしょうか。 ?Invalid commandというのは、正常に処理が行われている場合でも 出力されるのでしょうか。

  • scriptの実行するとき

    linux初心者ですが教えてください。 linuxでscriptを作成して自分で実行するときですが ファイル名.sh で実行できる時と sh ファイル名.sh としないと動かないときがありますが なぜでしょうか? 因みにredhatで実行権限は付けてます。

  • shシェルで実行パスではなくファイルのパスを取得する方法

    pwdコマンドで、実行パスを取得する事は可能ですが、このパスはどこから呼び出されたかによって変化します。 そうではなく、どこから呼ばれても、そのSHファイルのパスを取得する方法を教えてください。 <例:ディレクトリ> dir_a/ | +-dir_b/ | +-pgm_a.sh <例:シェル> ##### pgm_a.sh ##### #!/bin/sh echo `pwd` ##### pgm_a.sh ##### <例:コマンド> > pwd dir_a > ./dir_b/pgm_a.sh dir_a > cd ./dir_b > ./pgm_a.sh dir_a/dir_b どこから呼ばれても、常にpgm_a.shのパスである。 「dir_a/dir_b/」を取得できるコマンドが知りたいです。 あるいはシステム変数のようなものでも構いません。 よろしくお願いします。

  • Linuxでシェルスクリプトがフルパスだと実行できない

    Linuxでシェルスクリプトがフルパスだと実行できない こんにちは 現在linuxでシェルスクリプトを記載していて、やっと出来た!と思ったら、なぜかフルパスで実行すると失敗します。 中身は例えば #!bin/sh echo "hello" とし、ファイル名をtest.shとします。 実行時にカレントからだと上手くいきます。 ./test.sh ただし、フルパスで実行するとうまくいきません。 ./home/user/test.sh エラーは以下 bash: ./home/dv3/tet.sh:No such file or directory 所有者はrootでグループもrootにしてあります。 シェルの権限は755にして、rootで実行しています。 なぜカレントだと上手くいき、フルパスだと上手くいかないのでしょうか? パスが必要なコマンドも入っていないのに。。。 どなたかご教授いただけると幸いです。 宜しくお願い致します。

  • phpでsudoコマンドの実行

    ブラウザからAndroidアプリのプロジェクト作成を可能にしようとしています。 Linux端末もしくわターミナルのroot権限で 「android create project --target ○ --name △ --path /var/../../.. --activity △ --package ■〇△」←「..や〇、△等は適当です(笑)」 というコマンドを実行するとプロジェクトが作成されます。端末、ターミナルでのこのコマンド実行には成功しています。 上記のコマンドをブラウザで実行させようと、まず一般ユーザモードでsudoコマンドでの実行を試みました。 「sudo /home/../../android create project --target ○ --name △ --path /var/../../.. --activity △ --package ■〇△」 というコマンドを実行するとsudoコマンドでもプロジェクトが作成されます。端末、ターミナル内でのこのコマンド実行も成功しています。 次にブラウザからの実行ですが、 ブラウザからphpのsystem関数を用いてsudoコマンドを使ったコマンド実行を試みているのですが、できません。 自分なりに調べて、sudoコマンドに必要なパスを入力不要にし、サイトに書いてあったので、viコマンドで、sudoure内の「Defaults requiretty」に#も追加しました。 ブラウザでphpのsystem関数を用いて上記コマンドの実行は不可能なのでしょうか?

    • 締切済み
    • PHP
  • シェルスクリプト(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】シェルの実行方法を教えて下さい。

    【Linux】シェルの実行方法を教えて下さい。 ファイルの中身が#!/bin/bashで始まる拡張子shのシェルがあります。 これを実行するには、どのようなコマンドを打てばよいのでしょうか? 1.rootでログイン。 2.test.shがあるフォルダに、cdで移動する。 3.test.shと入力し、Enterキーを押す。 ↑みたいな感じで良いのでしょうか。 テスト用サーバなので、最悪壊しても良いと上司に言われましたが、 なにぶん時間がないため質問させていただきました。 Redhatでバージョンが3か4だったと思います。 よろしくお願いします。

  • 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
SQLに条件を追加する方法とは
このQ&Aのポイント
  • SQLに条件を追加する方法について分かりません。具体的な手順を教えてください。
  • WordPressのSQL文に条件を追加する方法を知りたいです。どのようにすればいいですか?
  • SQL文に条件を追加する方法を教えてください。具体的なコード例も教えていただけると助かります。
回答を見る