在Perl中使用shell命令和管道

2021-05-25 00:24:17 字數 590 閱讀 5478

在perl中使用shell命令有三種方法

第一種方法,system函式格式如下

system("command");

若命令正常執行則返回0,否則返回非零值

此方法的缺點是不能將shell命令的輸出直接捕獲到perl程式中來

第二種方法,使用反引號``,可直接將shell命令的輸出捕獲到perl程式中(即其返回值)

對於多行輸出,將其賦給陣列變數,如

@a = `ls -al`;

第三種方法,使用qx{},該方法適用於command包含多個反引號的情況。另外,花括號{}也可換為別的符號

perl中的管道被視為即可讀取也可寫入的檔案,如

open(rhandle, "ls -al | sort | ");	//rhandle是讀檔案控制代碼,讀入sort命令輸出的部分

open(whandle, " | more"); //whandle是寫檔案控制代碼,寫入的內容通過管道傳給more命令進行分頁顯示

在perl中嵌入shell命令

在linux中,如果要把幾個可執行程式結合起來使用,一般是採用shell或者perl,當然,python也可以。這裡說一下在perl裡嵌入shell命令的情形。一般來說,最簡單的方式就是採用 qx 就可以執行命令 1 2 cmd du sh cmd 這樣命令就執行了,但是卻並沒有輸出。要輸入的話,簡...

在shell中使用sed命令替換 為

sed命令相關 這裡我們要做的功能是 輸入乙個目錄 data data8 在shell中將其變換為 data data8 這是為了能在shell後邊的sed命令中直接使用 先來看看直接使用命令如何實現 echo data data8 sed s g s g s代表替換 g代表到行結尾,三個標黑放大的...

在Shell中使用alias

以前在linux跳機上登入其他伺服器 ssh ip 為了方便,把很多伺服器的ip和業務名稱touch到了使用者主目錄下,這樣方便了好多,每次ls l 出來下就可以了,然後複製,貼上就方便了。如下圖。這樣每次複製貼上還是不是特別方便,所以行能不能輸入業務名字,直接就登入了,仍然保持著touch的檔案 ...