如何将*附加到字符串并将预准备的SQL查询分配给另一个变量?即,(从*中选择*。)

帕尔瓦特拉扬·纳塔拉扬

我正在尝试创建一个SQL查询,并试图将其分配给某个变量,但我无法做到这一点。

TABLENAME=foo
QUERY="select * from $TABLENAME"
echo $QUERY

我期望查询将是 select * from foo

取而代之的是 select [file names in the directory] from foo

这正是我要得到的,而不是得到原始查询。

从foo中选择Anaconda3-5.3.1-Linux-x86_64.sh hadoop-2.7.3 hadoop-2.7.3.tar.gz script.sh

弗雷迪

您必须引用变量:

echo "$QUERY"

否则,shell会将扩展*为当前目录中的文件。

尝试echo "*"echo *在您的外壳中。

*是您的Shell功能(可能是Bash)的一部分,称为Pathname Expansion

从bash手册页:

特殊模式字符具有以下含义:

*      Matches any string, including the null string.  When the globstar  shell  option
       is  enabled, and * is used in a pathname expansion context, two adjacent *s used
       as a single pattern will match all files and zero or more directories and subdi-
       rectories.   If followed by a /, two adjacent *s will match only directories and
       subdirectories.

为防止这种情况,您可以*使用反斜杠转义\,也可以使用双引号"或单引号将其引号'

例子:

# no pathname expansion
$ echo \*
*
$ echo "*"
*
$ echo '*'
*

# pathname expansion
$ echo *
file_x file_y file_z_in_this_directory

单引号引起的问题是,它将阻止变量的扩展(也称为参数扩展)。所有字符均按字面意义进行解释。

# no variable expansion
$ echo '$QUERY'
$QUERY

# variable expansion
$ echo "$QUERY"
select * from foo

# variable expansion and pathname expansion
$ echo $QUERY
select file_x file_y file_z_in_this_directory from foo

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个字符串附加到单词列表中的每个单词并将新单词列表分配给变量?

如何将字符串和变量的组合分配给另一个变量?

给定两个字符串,如何将较短的字符串分配给一个变量,将较长的字符串分配给另一个变量

swift:如何将一个字符串从textField分配给另一个字符串?

如何选择CSS变量并将样式值分配给另一个元素

如何将列表中的字符串作为“快捷方式”分配给另一个字符串?

如何将字符串分配给数据类成员的另一个字符串?

通过连接字符串和整数将变量分配给另一个变量

从ansible变量中过滤与模式匹配的子字符串,并将匹配的子字符串分配给另一个变量

如何将公式的值(包含变量)分配给另一个变量

如何将我的选择选项分配给另一个变量

如何将字符串的最后一个字符分配给变量?

如何将变量列表分配给另一个列表

如何将另一个文件中的变量分配给类常量?

如何从数组中选择随机字符串并将其分配给变量?

如何将一个类的对象作为字符串运算符分配给变量?

如何将一个JavaScript文件中的变量分配给另一个JS File?

如何将int和字符串数组快速分配给一个字符串变量?

如何将包含空格的变量分配给 KSH 中的另一个变量

一种将字符串并集分配给另一个类型的方法

Oracle SQL-如何在另一个查询中选择子字符串索引?

将char *数组中的字符串分配给另一个char *数组

如何将Angular @Input值分配给另一个变量并填充到子代中?

C 将字符串分配给另一个字符串导致 realloc():下一个大小无效

如何通过 BASH 主机命令一个变量并将答案分配给另一个变量

如何将字典中的相同值分配给另一个字符串列表

如何将字符串分成两部分,然后将每个段分配给一个变量

android将两个字符串变量之一分配给另一个类中的一个字符串

HTML - 如何将文本值分配给另一个属性的值?