如何在shell脚本中将tablename作为参数传递给Bigquery命令行

如何在shell脚本中将tablename作为参数传递给Bigquery命令行,shell,google-bigquery,Shell,Google Bigquery,查询语句未将$f视为select语句中的参数。这是由于勾号['] 这里有一个工作代码(我使用了数字): 在SQL语句周围使用单引号。使用双引号,变量将插入:“从项目id.dataset\u名称中选择*。$f其中1=2”按照建议将单引号替换为双引号,但在bq查询时会抛出错误--使用\u legacy\u sql=False--目标\u表数据集\u名称。$f'从项目\u id.dataset\u名称中选择*。$f其中1=2'bq查询--使用\u legacy\u sql=False--目标\u表数据

查询语句未将
$f
视为select语句中的参数。

这是由于勾号[']

这里有一个工作代码(我使用了数字):


在SQL语句周围使用单引号。使用双引号,变量将插入:
“从项目id.dataset\u名称中选择*。$f其中1=2”
按照建议将单引号替换为双引号,但在bq查询时会抛出错误--使用\u legacy\u sql=False--目标\u表数据集\u名称。$f'从
项目\u id.dataset\u名称中选择*。$f
其中1=2'bq查询--使用\u legacy\u sql=False--目标\u表数据集\u名称。$f“select*from
project\u id.dataset\u name.$f
where 1=2”语法错误:意外的关键字where at[1:16]可能您的shell将
project\u id.dataset\u name.$f
周围的反勾(```)解释为一个子命令。请尝试将其省略或使用反斜杠引用。
#creating tables with schema only:

for f in $list;              
do           
echo "event name :::::$f"      
bq query --use_legacy_sql=False --destination_table dataset_name.$f  'select * from `project_id.dataset_name.$f` where 1=2'   
done         
for i in {1..3}
do
echo "TABLE $i"
bq query --use_legacy_sql=false 'select * from `<project>.<database>.'$i'`'
done
bq query --use_legacy_sql=False --destination_table dataset_name.$f  'select * from `project_id.dataset_name.'$f'` where 1=2'