今天改了 oracle 的密码带了一个 @得麻烦点,用 shell 里得写成\"pwd\",
下面是个用 sqluldr 导出表的 shell 脚本
echo "$SqluldrDir USER=$USERNAME/$PASSWORD@$SERVER query=\"select * from $1;\" field= charset=ZHS16GBK FILE=$Dir/$1.bcp log=$Dir/RUN_LOG/$1_out.log"
$SqluldrDir USER=$USERNAME/$PASSWORD@$SERVER query="select * from $1;" field= charset=ZHS16GBK FILE=$Dir/$1.bcp log=$Dir/RUN_LOG/$1_out.log
我用 echo 出来的语句直接运行就 return 0 pass 直接放在 shell 里跑就毫无反应 return 1 failed
莫名,现在正准备试试 sqlplus 行不行
1
Gcourage 2019-06-11 23:55:42 +08:00 via iPhone 1
shell 里面的$1 也应该转义下
这个不然容易解释成第一个参数 |
2
rrfeng 2019-06-12 00:24:07 +08:00 via Android 1
sh -x 执行就看到为啥了
|
3
ps1aniuge 2019-06-12 13:47:41 +08:00 1
我用 echo 出来的语句直接运行就 ok。
直接放在 shell 里跑就毫无反应。 ---------试试 linux 版 powershell。 $SqluldrDir='xxx' #原来的变量不变,只是 powershell 语法定义变量时也要加$ $a = @" $SqluldrDir USER=$USERNAME/$PASSWORD@$SERVER query="select * from $1;" field= charset=ZHS16GBK FILE=$Dir/$1.bcp log=$Dir/RUN_LOG/$1_out.log "@ echo $a #输出变量替换结果 Invoke-Expression $a |
4
ps1aniuge 2019-06-13 14:58:29 +08:00
看了楼主附言,大家可知,这个白大夫这病,又倍潘大夫治好了。
|
5
james122333 2019-06-14 09:47:01 +08:00
不明所以的问题 hahaha 写 shell 必须遵从基本法阿
|
6
weizhen199 OP |
7
james122333 2019-06-14 14:12:55 +08:00
@weizhen199 主要是你讲的比较杂乱 不明白是什么意思 我刚好也没 oracle 可以测
|