- PR -

system関数の引数で相対パスは利用できるか?

1
投稿者投稿内容
tasap
会議室デビュー日: 2005/06/01
投稿数: 8
投稿日時: 2006-01-17 18:18
Solaris8環境下で、シェルからperlで作成したPGを
起動させています。
そのperlの中でsystem関数を利用し、別のシェルを
起動させたいのですが、system関数の引数として、
相対パスを記述させたい(メンテナンス性向上の為)
が、絶対パスで記述しないと起動しません。

そもそもsystem関数の引数で相対パスは利用できる
のでしょうか?

【perlの記述】
○絶対パス
[perl PG]
system('/usr/local/dwh/run.sh');

×相対パス
[起動シェル]
BASE=/usr/local/dwh;
$BASE/perl/jnl.pl -f $JNL -R $TIMER -B $BASE;

[perl PG]
use vars qw($opt_f $opt_R $opt_B);
・・・
my $BASE = $opt_B;
・・・
system('$BASE/run.sh');
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-01-17 19:22
引用:
tasapさんの書き込み (2006-01-17 18:18) より:
×相対パス
[起動シェル]
BASE=/usr/local/dwh;
$BASE/perl/jnl.pl -f $JNL -R $TIMER -B $BASE;
system('$BASE/run.sh');


これのどこが相対パスなの?
結合した時にフルパスになってると思うけど。
$BASEの値は確認した?
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2006-01-18 01:00
単に、シングルクォートとダブルクォートの間違いでは?
tasap
会議室デビュー日: 2005/06/01
投稿数: 8
投稿日時: 2006-01-18 10:07
coasmさん、ぶさいくろうさん
早速の返答ありがとうございました。

coasmさんのご指摘の通り、’を”に変更しましたら、うまく行きました!
’では文字列と認識されるんですね?勉強になりました。

ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)