将env var替换为从命令行传递的字符串参数

时间:2016-04-17 13:31:29

标签: bash shell sed

我可以找到大量使用echo,管道|sed的答案,但我想避免使用它们。所以寻找一些直接替代。

我想定义env var并在传递给应用程序命令行参数的字符串中重用它,即Rscript -e '...'
以下是我没有成功的尝试。

Rscript -e 'cat("hello\n")'
#hello
export ASD="HELLO!"
Rscript -e 'cat("$ASD\n")'
#$ASD
Rscript -e 'cat("${ASD}\n")'
#${ASD}
Rscript -e 'cat("$(ASD)\n")'
#$(ASD)

我不想使用echo|管道,因为我对应用程序的实际-e参数要复杂得多。

2 个答案:

答案 0 :(得分:1)

除了fun with quotes之外,您还可以使用位置参数。您的问题无法提供Minimal, Complete, Verifiable Example,因此我无法确定这是否符合您的需求。

bash-4.3$ bash -c 'set -; echo "${0^^} ... ${1/o/0}"' hello world
HELLO ... w0rld

答案 1 :(得分:0)

   <!--</div>-->

<div id="PageHeader1" style="width:100%;">
    <div id="wb_CssMenu1" style="width:375px;height:auto;z-index:0;">
        <ul>
            <li class="firstmain">
                <a href="./page1.html" target="InlineFrame1">Item&       nbsp;1</a>
            </li>
            <li>
                <a href="http://go.microsoft.com/fwlink/p/?LinkId=255142" target="InlineFrame1">Item&nbsp;2</a>
            </li>
            <li>
                <a href="http://www.aljazeera.com/news/" target="InlineFrame1">Item&nbsp;3</a>
            </li>
            <li>
                <a href="http://www.bbc.co.uk/news" target="InlineFrame1">Item&nbsp;4</a>
            </li>
        </ul>
    </div>
</div>
<!--</div>-->
<!--</div> 2-->

<div id="container">


    <iframe name="InlineFrame1" id="InlineFrame1" style="width:100%;    min-height:100vh;height:100%"  frameborder="0"        scrolling="auto" src="http://www.bbc.co.uk/news"></iframe>


</div>
<!--</div> 2-->
<!--div 3-->
<div id="PageFooter1" style="position:relative; overflow:hidden;text-align:left;width:100%;height:210px;">
    <h1>footer</h1>
</div>
<!--div 3-->