• ベストアンサー

bシェルで実行シェルIDの取得について

muadivの回答

  • ベストアンサー
  • muadiv
  • ベストアンサー率58% (30/51)
回答No.1

シェルIDというのはプロセス名ということでしょうか。 ずいぶん昔の記憶ですけど... 確か $0 で参照できたと思います。 echo "$0 実行開始 PID:$$" のようにすれば良かったと思いますけど。記憶違いかも知れない(^^;から実際に試してみてくださいね。

kiyoto
質問者

お礼

レスが送れて申し訳ありませんでした・ 確認したところOKでした事を報告いたします。 どうもありがとうございました。

関連するQ&A

  • Bシェルにてユーザの実行可否

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

  • メッセージを求められるシェルを連続実行

    お世話になります。 現在シェルを作成しています。 既に存在するシェル(100個)を順番に実行するシェルを 作成しようとしています。 しかし、その存在するシェルは実行すると、YES/NO  の確認メッセージに答えないと、進まないようになってい ます。 そのため、確認メッセージに中断されて連続で実行できません。 この確認メッセージで止まらずに連続実行する手段は あるのでしょうか? シェルに詳しい方のご教授ねがいます。 ■既に存在するシェルのメッセージ確認の個所 echo $変数 "実行しますか(確認メッセージ?) [N] => \c" read YN echo " " if [ "$YN" != 'Y' -a "$YN" != 'y' ];then echo ' 実行しません' exit 1 fi

  • 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/」を取得できるコマンドが知りたいです。 あるいはシステム変数のようなものでも構いません。 よろしくお願いします。

  • シェルでコマンドの実行結果を変数に格納する方法

    以下のようなコマンドライン引数を取得するシェルを書いたのですが 実行時にエラーになってしまいました。コマンド(第2引数以降を取得するコマンド)の実行結果を変数に格納するところでエラーになってしまいました。どのようにすればよろしいでしょうか。 「./test2.sh a b c d e」を実行し「a: コマンドが見つかりません」 というエラーが出てしまいます。 (test2.shの内容) #!/bin/sh OUTPUTFILE=$1 SRC_FILES=`"$@" | cut -d ' ' -f 2-` # 第二引数以降を取得 echo $OUTPUTFILE ←ここは表示される echo $SRC_FILES ←ここでエラー

  • シェルスクリプト 引数の引渡しについて

    こんにちは。現在シェルスクリプトを勉強中なのですがどうしてもわからないことがあり投稿させていただきました。 シェルスクリプトにて作成した引数(引数にスペースがある場合)を別のシェルスクリプトへ渡そうとしたときにうまく引き渡せなくて困っています。 詳しくは以下のスクリプト参照願います。 (1)引数作成のスクリプト _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh a="HELLO" b="\"WOW WOW\"" test.sh $a $b _/_/_/_/_/_/_/_/_/_/_/_/ (2)test.sh _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh echo $1 echo $2 echo $3 _/_/_/_/_/_/_/_/_/_/_/_/ これを実行すると $1=HELLO $2="WOW $3=WOW" となってしまいます。 これを $1=HELLO $2=WOW WOW $3=NULL(空欄) となるようにシェルスクリプトで作成することはできないのでしょうか? ご教授よろしくお願いします。 よろしくお願いします。

  • BシェルでSQL文を実行

    【OS:AIX】 あるユーザーでCRONを組んでおり、オラクルのプレシジャを読み込ませるシェルプログラムをCシェルで組んでありました。 それをとある理由でBシェルに変更させてチェックしております。 ところがBシェルに変更してから以下のsqlplus文で失敗してしまいます。 ただ、単独でshファイルを実行するときは、SQL文も読み込んでくれて問題なく正常に終了するのですが、crontabで実行させるとSQL文を読み出すところで失敗してしまいます。 何かいけないところはありますでしょうか # SQL*Plusを呼び出しデータ作成 sqlplus ID/PASSWORD@SID < $HOME/script/data.sql ユーザアカウント自体はデフォルトでKシェルで作成されたユーザです。

  • シェルの -eq の動作について

    シェルの -eq の動作について質問があります。 次のプログラムの動作を例に挙げます。 【ファイル名:A.sh】 #!/bin/sh readonly A=666 B=A echo $B if [ $B -eq 666 ]; then echo XXXXXXX exit 0 fi 「実行方法」 sh B.sh 「実行結果」 A 【ファイル名:B.sh】 #!/bin/sh readonly A=666 B=A echo $B if [ $B -eq 667 ]; then echo XXXXXXX exit 0 fi 「実行方法」 sh B.sh 「実行結果」 A -Question- A.shがif文に入ってしまう理由を教えてください。 変数Bが二重参照しているような気がするのですが、 そのような機能がshにあるのでしょうか? あと、もう一つ質問があります。 このシェルを古いバージョンで実行すると、  A.sh: line 8: [: A: integer expression exprected というエラーが出てしまいます。 これについても、わかる人がいましたら教えてください。

  • シェルの実行ファイル位置の取得

    sh実行時に絶対パスで指定するのですが、その実行したshのディレクトリは取得できないのでしょうか。 実行した後にそのパスを利用してシェル位置まで移動したいです。 /home/user/xxxxx/yyyyy/zzzzz/aaa.sh ↑をどこの場所で実行しても実行後には /home/user/xxxxx/yyyyy/zzzzz/の位置に移動をしていたいのですが、 シェル内で/home/user/xxxxx/yyyyy/zzzzz/を取得する事は可能でしょうか。

  • シェルの -eq の動作について

    シェルの -eq の動作について質問があります。 次のプログラムの動作を例に挙げます。 【ファイル名:A.sh】 #!/bin/sh readonly A=666 B=A echo $B if [ $B -eq 666 ]; then echo XXXXXXX exit 0 fi 「実行方法」 sh B.sh 「実行結果」 A XXXXXXX 【ファイル名:B.sh】 #!/bin/sh readonly A=666 B=A echo $B if [ $B -eq 667 ]; then echo XXXXXXX exit 0 fi 「実行方法」 sh B.sh 「実行結果」 A -Question- A.shを実行すると、処理がif文に入ってしまう理由を教えてください。 変数Bが二重参照しているような気がするのですが、 そのような機能が sh にあるのでしょうか?

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