2013-04-03 97 views
0

我需要使用perl來運行順序shell命令,但我需要shell環境來保持其變量。使用perl執行shell命令,同時保持shell環境變量

例如:

$result = `cd /`; 
$result = `touch test.txt`; 

在這個例子中,我需要的test.txt要在/創建。

另外,我不想在一行代碼中運行它們,如$ result = touch /test.txt;我需要單獨調用shell,而環境變量保持不變。

+0

你期望運行'bash -c'cd /''做任何有用的事嗎? –

+0

是的,我會的。這只是一個例子來描述我需要的東西。這個例子可能看起來不太有用,但在我需要的情況下,它非常有用。 –

+0

這是一個修辭問題。 'bash -c'cd /''不會**做任何有用的事情。它創建一個子shell,將其設置爲工作目錄,然後返回0的錯誤級別。完成後,您將擁有與之前相同的工作目錄。它唯一能做的就是找出目錄是否存在。 –

回答

3
chdir '/'; 
$result = `touch test.txt`; 
+0

謝謝,但我需要使用相同功能的2個獨立的shell調用。 「chdir」不是shell調用,與反引號不一樣。 –

+0

你可以使用所需的命令創建一個shell腳本文件(example.sh),並從Perl –

+0

中調用該腳本是的,但是然後我無法從每個命令中獲得單獨的結果。我可能需要操縱每個命令的結果並決定下一步該做什麼。 –