Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
weizhen199
V2EX  ›  Linux

百思不得起解, Linux shell 问题一则

  •  
  •   weizhen199 · Jun 11, 2019 · 3823 views
    This topic created in 2545 days ago, the information mentioned may be changed or developed.

    今天改了 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 行不行

    Supplement 1  ·  Jun 12, 2019
    破案了
    手打命令这个双引号就要转移 /"/"
    放在文本里给变量赋值里就=""就可以了, 打了转义符反而不行
    7 replies    2019-06-14 14:12:55 +08:00
    Gcourage
        1
    Gcourage  
       Jun 11, 2019 via iPhone   ❤️ 1
    shell 里面的$1 也应该转义下
    这个不然容易解释成第一个参数
    rrfeng
        2
    rrfeng  
       Jun 12, 2019 via Android   ❤️ 1
    sh -x 执行就看到为啥了
    ps1aniuge
        3
    ps1aniuge  
       Jun 12, 2019   ❤️ 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
    ps1aniuge
        4
    ps1aniuge  
       Jun 13, 2019
    看了楼主附言,大家可知,这个白大夫这病,又倍潘大夫治好了。
    james122333
        5
    james122333  
       Jun 14, 2019
    不明所以的问题 hahaha 写 shell 必须遵从基本法阿
    weizhen199
        6
    weizhen199  
    OP
       Jun 14, 2019
    @james122333 这个问题到不出在违反 shell 的基本法上
    这是 oracle 修正案让 shell 基本法的判决产生了极大的阻碍
    /doge
    james122333
        7
    james122333  
       Jun 14, 2019
    @weizhen199 主要是你讲的比较杂乱 不明白是什么意思 我刚好也没 oracle 可以测
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1004 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 18:48 · PVG 02:48 · LAX 11:48 · JFK 14:48
    ♥ Do have faith in what you're doing.