RestCloud ETL解決shell指令碼引數化

RestCloud發表於2022-06-23

RestCloud ETL社群版是一款資料整合工具,提供視覺化多資料管道構建、資料來源管理、執行監控及許可權管理功能。

RestCloud平臺中如何將變數傳入shell指令碼中使用,平臺中有兩種方式執行shell指令碼,分別是元件內編寫指令碼程式碼和呼叫指令碼檔案,根據不同的執行方式也有不同的獲取變數的方式。

 

1.元件內編寫指令碼

元件內編寫指令碼的變數獲取方式與其它元件獲取變數的方式相同,使用${變數id}就可以獲取到變數資料。如下圖所示:

這裡做個簡單的流程,把資料庫表中的某個欄位資料作為變數逐條輸入到shell指令碼當中。

這裡是資料庫資料,流程中會將姓名作為變數。

庫表輸入元件的配置這邊略過,簡單的能夠成功讀取輸出資料就行。

逐行輸出這裡需要將欄位資料轉成為變數資料輸出到下一個節點。

這裡是shell指令碼配置,寫個簡單的指令碼,使用${變數id}呼叫上個節點傳入的變數資料。

執行之後可以看見已經成功通過${姓名}獲取到了資料庫輸出的資料。

 

2.呼叫指令碼檔案

這個是呼叫已經寫好的shell指令碼檔案,指令碼檔案中不用定義變數的名字,直接使用 $變數id 這種方式呼叫就可以成功呼叫流程中傳入的變數。如下圖:

這裡同樣採用上面的流程和資料庫,只是稍微修改了一下shell元件的指令碼內容。

因為是讀取的指令碼檔案,這裡需要填寫一下指令碼所在的目錄。在shell指令碼中執行檔案以及使用${變數id}來獲取變數即可,注意:若是多個變數就需要注意變數的順序。

這裡進入到檔案所在目錄後使用pwd檢視當前所在的路徑地址。

使用vim 檔名稱 進入指令碼檔案編輯指令碼程式碼,這裡簡單的列印第一個變數和一個hello,在檔案中使用$1~$n來新增傳到Shell的變數值。$1是第1變數、$2是第2變數…。

 

配置完成,執行後檢視結果。

可以看到shell成功獲取了變數資料,輸出到了日誌中。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005218/viewspace-2902385/,如需轉載,請註明出處,否則將追究法律責任。

相關文章