Linux
為 shell 腳本中的各種變數執行命令
因此,我將從 sql 查詢返回的第一列的值儲存在變數(
var
)中。它應該是數組類型,因為 sql 查詢返回多行,稍後,這些值將用於命令。我不確定如何在 shell 腳本中使用不同的變數一個接一個地執行相同的命令。
var=`app/oracle/product/10.2.0/bin/sqlplus -s user/passwd<< !EOF! set pages 0 echo off feed off timing off select entity_name,uid,set_date from table_name; exit !EOF!`
要執行的命令如下所示:
X=$var Y=`date` ./test.sh
您不需要將數據庫查詢的輸出儲存在一個變數中。
app/oracle/product/10.2.0/bin/sqlplus -s user/passwd <<END_SQL | while IFS= read -r thing; do X="$thing" Y="$(date)" ./test.sh; done set pages 0 echo off feed off timing off select entity_name,uid,set_date from table_name; exit END_SQL
這將讀取
sqlplus
命令的輸出並為每一行呼叫一次腳本,設置環境變數的值X
並Y
在過程中。
你的要求不清楚。您可以修改腳本嗎?如果不是,並且它顯式地依賴於
X
andY
變數,那麼您將需要一個 temp / loop 變數。要test.sh
為每個數組元素執行,請嘗試for
循環(除非任何元素中有空格字元):for TMP in "${var[@]}"; do X="$TMP" Y=$(date) ./test.sh; done