pun*_*eet 1 unix oracle bash whitespace sqlplus
我有一个下面的测试ksh文件
#!/bin/ksh
(
sqlplus -s << EOF
${DATABASE}
SET SERVEROUTPUT ON;
SET HEAD OFF
SET FEED OFF
SET DEFINE OFF
SET PAGES 0
SET COLSEP ";"
WHENEVER SQLERROR EXIT SQL.SQLCODE
SELECT 'aaaa vvvv cccc' FROM DUAL;
EXIT
EOF
) | while read sql_out
do
echo ${sql_out}
done
Run Code Online (Sandbox Code Playgroud)
预期的产出是
aaaa vvvv cccc
Run Code Online (Sandbox Code Playgroud)
但观察到的输出是
aaaa vvvv cccc
Run Code Online (Sandbox Code Playgroud)
Sqlplus正在从我的输出中删除额外的空格,我想保留它.
这不是SQL*Plus,它是shell.您需要将变量括在引号中:
要保留字符串或变量中的空格,请使用引号.
而不是
echo ${sql_out}
Run Code Online (Sandbox Code Playgroud)
做其中任何一个:
echo "${sql_out}"
printf "%s\n" "${sql_out}"
Run Code Online (Sandbox Code Playgroud)
然后输出将是:
aaaa vvvv cccc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |