• ベストアンサー

Linuxで自作バッチファイルの置く場所?

Linuxでshの構文のバッチ処理を記述したものをどこでも呼び出せるように実行パスの効いたところに置きたいのですが、Linuxの流儀を知らずに困っています。 どこにおけばスマートでしょうか? 使い方 >./biginner 例) ファイル名 biginner chmod 705 biginner 中身) #!/bin/sh echo "I am beginner."

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

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

いろいろな方法がありますが 自分のホームディレクトリ配下に「bin」というディレクトリを作成して .bashrcや.bash_profileで PATH=$PATH:$HOME/bin export PATH みたいにパスを通す方法をよくとります。 自作のシェルなどは、$HOME/bin配下に配置します。

関連するQ&A

  • rshを使用したバッチファイル

    今、あるサーバにPCからシェルをFTPして、RSHでFTPしたシェルを実行するバッチファイルを作成していますが、 コマンド1行づつをカット&ペーストで実行すると正常に動作するのですが、バッチファイルをWクリックすると、FTP は正常に動作するのですが、RSHの処理がされず、ループ? (ループの記述はなし)してしまいます。 *ECHO ONでじっこうすると、RSHの行は呼ばれているみたいですが、処理が失敗しているようです。 バッチファイルでの設定に問題があるのでしょうか? <バッチの内容 start> *IP、パス、ユーザ名は伏せさせていただきます。 ftp -s:d:\PATH\send.txt XXX.XXX.XXX.XXX rsh XXX.XXX.XXX.XXX -l USRNAM -n "chmod +x /PATH2/rsh.sh;source /PATH3/envsetUSRNAM;PATH4/rsh.sh" <バッチの内容 end>

  • バッチファイルについて

    @cmd /k 上記の内容で「a.bat」というファイル名で保存しました。 この保存したファイルをダブルクリックすると、バッチファイルが格納されてるフォルダのパスがコマンドプロンプト上に表示されます。 パス表示後に、いろいろな動作(「echo~」など)を実行したいと思っているんですが、うまくいきません。 どうやら一番上の「@~」を記述したものは、そのあとに「echo~」などを記述しても実行してくれないみたいです。 「@cmd /k」実行後に何か(「echo~」など)を実行するにはどうしたらいいですか?

  • 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で実行しています。 なぜカレントだと上手くいき、フルパスだと上手くいかないのでしょうか? パスが必要なコマンドも入っていないのに。。。 どなたかご教授いただけると幸いです。 宜しくお願い致します。

  • バッチファイルの書き方

    Linux上で実行するバッチファイルを作っています。 runというファイル名で、中には、  sudo ./GUItask とだけ書かれている、GUItaskというアプリケーションを実行するバッチファイルです。 (./runとコンソール上で打って使うつもりです) ここで、 アプリケーションが起動した時間と終了した時間を記録したいので、  /bin/date >> log  echo "起動" >> log  sudo ./GUItask  /bin/date >> log  echo "終了" >> log と書きました。 これで、logというファイルに、  2009年2月3日火曜日12:12:43 JST  起動  2009年2月3日火曜日12:15:43 JST  終了 などと書かれるようになりました。 これを、  2009年2月3日火曜日12:12:43 JST 起動  2009年2月3日火曜日12:15:43 JST 終了 のように、文字列を同じ行に書きたいのですが、 どのように記述したらよいでしょうか。

  • Linuxのファイル内でwhoコマンドを使うには

    Linuxで作成したファイル内でwhoコマンドを使って ユーザー名を表示したいのですが、使い方がわかりません。 #!/bin/sh echo "Hello, I am 'whoami' ." とファイル内に書いてみたのですが表示されません。 ご回答をお願いします。

  • windowsのバッチファイルについてファイルサイズが読めません(fo

    windowsのバッチファイルについてファイルサイズが読めません(for構文) はじめまして。バッチファイル作成にあたりわからなかったことがありまして 私自身調べたのですが、初心者のためよく分りませんでした。 どなたかおわかりになる方、お力を貸していただけないでしょうか。 パソコンのOSはXPです。 大学院修士の研究で、以下のようなバッチファイルを考えています。 そして、forのところでInputPart.csvというファイルがあるのですが 実行してみたところ、どうやらそのファイルサイズが読めてないようなんです… if %%~zi lss 5000 という部分の値を5000から0に変更すると下の0125.exeやSimHeat.exe -99831 -cの実行プログラムが稼働するので、構文としては合っているのではと思っているのですが… ちなみにInputPart.csvの容量は4kBくらいです。 どのようにすれば、ファイルサイズが反映されるようになるでしょうか。 それとも、やはりどこか構文がおかしいのでしょうか。 すみません。お力を貸してください。 よろしくお願いします。 この下にバッチファイルの中身を示します。 @echo cd C:\1003\bin 0420.exe for /r [C:\1003\bin] %%i in (C:\1003\bin\InputPart.csv) do if %%~zi lss 5000 goto end SimHeat.exe -99831 -c 0125.exe :end

  • Linux ファイル 絶対パス、相対パス

    Linux CentOSの /mnt/loca/bin の配下にrootで test.sh common.sh data.txtを作成 chmod 755 chown root:rootでファイルもフォルダも設定。 別のユーザ testUserでログインし、 sh test.shを実行すると、sh内で記載されている . ./common.shのインクルードに失敗 data.txtの参照 cat data.txt に失敗してしまいます。 絶対パスに変更し、 . /mnt/local/bin/common.sh cat /mnt/local/bin/common.sh にすると問題なく動作します。 また、rootユーザでログインすると相対パスでも問題なく動作します。 rootユーザでないユーザでは絶対パスにする必要があるのでしょうか? 環境変数PATH に /mnt/local/binはとおっています。 ご教授よろしくお願い致します。

  • バッチファイルについて

    ファイルの中身を抽出するバッチを作成しました。 そのバッチファイルを実行し、test.csvというファイル名をつけて出力できたんですが、出力パスも指定することは可能なんでしょうか? find.bat > test.csv

  • Linuxのシェルについて

    いつもお世話になっております。 Linux(redhat)でのシェルスクリプトを作成したいと思いますが、あるコマンドを実行して実行成功したか失敗したかをstatusで拾う形にしたのですがうまくいきません。アドバイスをお願いします。 例: #!/bin/sh set ST = $status date ←コマンド if [ $ST == 0 ]; then echo "**************" echo "* o k *" echo "**************" exit $NORMAL else echo "**************" echo "* N G  *" echo "**************" exit $ABEND fi

  • バッチファイルでexeの場所を検索して起動したい

    A.exeをwinのユーザー環境変数に登録しているか、バッチファイルと同じフォルダに存在するとき、どちらかのA.exeでBコマンドを実行 ただし、cdやpushdを使わず相対パスだけで処理したいのですが、どのように記述すればよいのでしょうか ========================= @echo off setlocal set "CurDir=%~dp0" rem 「A.exeの環境変数のpath」もしくは「%CurDir%A.exe」どちらかのA.exeでBコマンド exit /b =========================