前言
你寫的指令碼(或程式)的應用場景肯定有很多,如:本機登入使用者在程式所在的目錄下執行;本機登入使用者在根目錄下執行;或者是遠端使用者使用ssh呼叫。
而此時,你的程式涉及到一些檔案的讀/寫操作,這時就需要以當前程式所在絕對路徑為檔案路徑座標基點--以定位讀/寫檔案的所在,才能成功地讀寫檔案。
1. 錯誤方式之一
use cwd;
my $cwd = getcwd();
print "cwd path = "
,$cwd,
"\n"
; 這種方式:
a.在本機登入使用者在程式所在目錄下執行該程式時
正確--獲得該程式的絕對路徑。
b.本機登入使用者在根目錄下執行和遠端使用者使用ssh呼叫獲得的
路徑皆為「/root」
2. 錯誤方式之二 #!
/usr/bin/perl
use cwd;
use file
::basename;
my $cwd;
print "\$0 = "
,$0,
"\n"
;if(
$0 =
~ m)
else
print "path = "
,$cwd,
"\n"
; 這種方式:
a. 本機登入使用者在程式所在目錄下使用 #.
/test_program.pl
執行該程式時會出錯--絕對路徑會多乙個「.」。如「/opt/***/.」。
3. 正確的方式
use file
::spec;
print "\n"
;my $path_curf =
file
::spec-
>rel2abs(__file__)
;print "c path = "
,$path_curf,
"\n"
;my (
$vol, $dirs, $file)=
file
::spec-
>splitpath(
$path_curf)
;print "c dir = "
, $dirs,
"\n"
; 使用這種方式就能任何場景下得到正確的當前程式的絕對路徑「$dir」。
頂0
Ruby中獲取當前指令碼的絕對路徑
在ruby 中,以下 可以獲得當前指令碼的絕對路徑 require pathname puts pathname.new file realpath 將以上 儲存在test1.rb中,然後放在d盤的根目錄下。測試的時候我們進入c盤,執行ruby d test1.rb,控制台會輸出當前指令碼的絕對路徑...
JS魔法堂 獲取當前指令碼檔案的絕對路徑
一 前言 當寫模組載入器時,獲取當前指令碼檔案的絕對路徑作為基礎路徑是必不可少的一步,下面我們一起來 一下這個問題吧!二 各大瀏覽器的實現方式 a chrome和ff 超簡單的一句足矣!var getcurrabspath function 這裡利用了物件 document.currentscrip...
JS魔法堂 獲取當前指令碼檔案的絕對路徑
一 前言 當寫模組載入器時,獲取當前指令碼檔案的絕對路徑作為基礎路徑是必不可少的一步,下面我們一起來 一下這個問題吧!二 各大瀏覽器的實現方式 a chrome和ff 超簡單的一句足矣!var getcurrabspath function 這裡利用了物件 document.currentscrip...