我使用以下构造在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"
答案 0 :(得分:2)
虽然不是原始问题的答案,但这确实可以解决您的问题。考虑使用替换,例如cat
QUERY=$(cat <<EOM
test
test2
EOM
)
mysql table_name -e "$QUERY"
如果您从未经过抽样的输入中读取这些值,请注意安全问题。