以字符串而不是逐字检索整个文件内容-Linux命令

问题描述

我正在尝试在npm脚本中引用.sql文件

package.json

"scripts": {
   ...,"rls:on": "npm run typeorm query $(cat src/policies/enable-rls.sql)"
}

enable-rls.sql

 ALTER TABLE folder ENABLE ROW LEVEL Security;

在运行上面的命令时,出现以下错误

QueryFailedError: unterminated quoted string at or near "ALTER"

由于sql从作为单个单词检索的文件中读取:

"ALTER" "TABLE" "folder" "ENABLE" "ROW" "LEVEL" "Security;"

代替全文:

"ALTER TABLE folder ENABLE ROW LEVEL Security;"

将qsl读取为全文的命令是什么?

解决方法

用JSON转义的双引号$(...)中的command substitution部分,即\"...\"

例如,将您的npm脚本更改为以下内容:


"scripts": {
  ...,"rls:on": "npm run typeorm query \"$(cat src/policies/enable-rls.sql)\""
                                   ^^                                  ^^
}