Answers:
如果使用bash
,则可以使用参数扩展:
dt=${dt//$'\n'/} # Remove all newlines.
dt=${dt%$'\n'} # Remove a trailing newline.
以下内容也应适用/bin/sh
:
dt="${dt%
}" # Remove a trailing newline.
在Linux(bash)上的这项工作:
dt="$(echo "$dt"|tr -d '\n')"
在Linux或其他具有GNU date实用程序的系统上,这也可以为dt获得该值:(不涉及Oracle ...)
dt="$(date -d 'yesterday' +%Y%b%d)_$(date -d '7 days ago' +%Y%b%d)"
echo 'puts [clock format [clock scan "-1 week"] -format %Y%b%d]_[clock format [clock scan yesterday] -format %Y%b%d]' | tclsh
SET PAGES [IZE] {14 | n} 设置输出的每一页上的行数。您可以将PAGESIZE设置为零,以禁止显示所有标题,分页符,标题,初始空白行和其他格式信息。
因此set pagesize 0
,请在脚本中添加,以免出现空白行。
对于大多数脚本,我使用以下代码段中的设置:
dt =`sqlplus -s user / pwd @ servicename <<EOF 设置反馈 设置页面大小0 设置修剪 设置修剪 设定线条大小300 关闭回声 设置验证关闭 选择replace(to_char((sysdate-7),'YYYYMonDD')||'_' || to_char((sysdate-1),'YYYYMonDD'),chr(10),'')from dual; 出口; EOF` 回声“测试$ dt $ dt”
${var//a/}
不需要使用last/
,${var//a}
将完全相同。