如何将变量作为参数传递给shell脚本中的Bigquery命令行

时间:2017-08-08 12:05:46

标签: bash

我正在尝试通过我的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:line 13:找不到表名:命令   mk操作中的BigQuery错误:无法确定financelcr:datasetid

描述的表

1 个答案:

答案 0 :(得分:1)

$(..)试图执行的操作是命令替换以在子shell中运行命令。你需要的是语法${..}的可变扩展。更改命令直接使用参数

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