您好我正在编写一个小的shell脚本,它将从DB中的.ctl文件加载数据,但是在执行脚本后不应该在屏幕上显示输出,因为它很关键,只是想要确认这是否正确:
#!/bin/ksh
Y=`sqlldr usr/passwd@DB control = /work/ctlm/SCRIPTS/upload.ctl`
echo $Y > sqlldr_1
rm -rf sqlldr_1
答案 0 :(得分:2)
在shell中,空格用于分隔参数,在=
周围删除它们。
还可以使用变量$ Y周围的引号来保持格式(空格,换行符)。
#!/bin/ksh
Y=`sqlldr usr/passwd@DB control=/work/ctlm/SCRIPTS/upload.ctl`
echo "$Y" > sqlldr_1
rm -rf sqlldr_1
如果您不想要任何输出屏幕,请使用重定向
例如,删除输出
sqlldr usr/passwd@DB control=/work/ctlm/SCRIPTS/upload.ctl >/dev/null 2>&1
创建2个文件out.log和err.log
sqlldr usr/passwd@DB control=/work/ctlm/SCRIPTS/upload.ctl >out.log 2>err.log
fd 1是隐含的,>out.log
与1>out.log
相同
可以在>
和文件名之间添加空格,
但文件描述符与>