2017-08-08 24 views
1

我試圖通過shell腳本執行BigQuery命令行。 例如:如何將變量作爲參數傳遞給shell腳本中的BigQuery命令行

#!/bin/bash 
bq mk -t 'projectid':'datasetid'.'TEMP_table1' 

上面的腳本工作正常。 但我的要求是隨機傳遞表名,我需要創建。所以,我在shell腳本執行以下命令:

#!/bin/bash 
Tablename=$1 

echo $Tablename 
bq mk -t 'projectid':'datasetid'."$(Tablename)" 

當我運行它./test.sh 'Temp_table'命令失敗,出現錯誤:

./test.sh:第13行:未發現 命令:表名BigQuery的錯誤MK操作:無法確定由financelcr描述表:資料集

回答

1

你所試圖通過$(..)做的是命令替換爲子shell中運行命令。你需要的是語法${..}的可變擴展。直接改變你的命令使用參數

[ $# -eq 0 ] && { printf "Arguments not supplied\n"; exit 1; } 
bq mk -t 'projectid':'datasetid'."${1}" 
相關問題