如何使read -d返回true

时间:2016-02-19 05:24:03

标签: bash

我使用以下构造在bash shell中设置多行字符串。但是这总是返回false,这在我设置set -e时不起作用。我怎样才能让这成功呢?

#!/bin/bash
set -x
set -e

read -d '' QUERY <<EOF
UPDATE table_name SET
 field1 = 'value',
 field2 = 'value'
 WHERE id = 1;
EOF
mysql table_name -e "$QUERY"

1 个答案:

答案 0 :(得分:2)

虽然不是原始问题的答案,但这确实可以解决您的问题。考虑使用替换,例如cat

QUERY=$(cat <<EOM
test
test2
EOM
)

mysql table_name -e "$QUERY"

如果您从未经过抽样的输入中读取这些值,请注意安全问题。