這是一個shell腳本,我如何在Perl中完成同樣的事情?如何將shell腳本移植到Perl?
prfile=~/sqllib/db2profile
profile()
{
if [ -f $prfile ] && [ "$prfile" != "" ];
then
. $prfile
else
read -p "Enter a valid Profile : " prfile
profile
fi
}
profile
這檢查的配置文件,如果發現它與其他. $prfile
執行它,它再次要求用戶爲正確的配置文件
更新
#!/usr/bin/perl
use strict;
use warnings;
my $profile = "$ENV{'HOME'}/sqllib/db2proile";
# default profile
while (not -e $profile) { # until we find an existing file
print "Enter a valid profile: ";
chomp($profile = <>); # read a new profile
}
qx(. $profile);
這個工作。我希望主目錄是動態的而不是硬編碼的,因爲它們在不同的機器上有所不同。我只是試圖用Perl來完成我用shell獲得的成果。
哪個腳本的具體部分給你帶來問題?這個腳本的第一個功能是爲一個變量賦值。如果你不知道如何去做,那麼在你尋求幫助之前,你真的需要從一個基本的Perl教程開始。 – Quentin 2013-02-24 16:39:12
**〜/ sqllib/db2 **在shell中是**/home-direc/sqllib/db2 **,當我這樣做時** @prfile ='〜/ sqllib/db2'**; ,它不工作,當我做**'〜/ sqllib/db2 **;即使這不起作用,它怎麼做 – mviswa 2013-02-24 16:58:58
定義「不工作」。你期望發生什麼?究竟發生了什麼? '@prfile ='〜/ sqllib/db2''應該不會顯示可見的輸出(除非你使用'strict' **你應該**,在這種情況下它會錯誤,因爲你忘記了'my')。 '〜/ sqllib/db2'應該是錯誤的,因爲它在Perl中並不意味着什麼。 (任何爲什麼你在地球上使用數組?) – Quentin 2013-02-24 17:10:34