【问题标题】:bashrc alias argument add a white spacebashrc 别名参数添加一个空格
【发布时间】:2018-07-07 04:26:52
【问题描述】:

我想在 bashrc 中设置一个别名来读取参数并将其输出到屏幕。

alias myecho='echo 123' 

如果我这样做了

$> myecho 

我可以得到正确的结果。

123

但是如果我给别名添加一个参数

alias myecho2="echo 123.$1"

我愿意

$> myecho2 555 

我输入的参数前面会有一个空格。

123 .555

我应该怎么做才能摆脱空白?

【问题讨论】:

    标签: bash arguments alias


    【解决方案1】:

    别名没有参数。 $1 在此上下文中为空。

    echo 123.$1 实际上是echo 123. 并且只有命令的myecho2 部分扩展为echo123.。后面的空格和555 没有变化。

    您可以使用函数来实现所需的行为:

    function myecho3() {
        echo 123.$1          # The quotes are not needed
    }
    myecho3 555
    
    # Displays
    # 123.555
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      alias myecho2="printf '123.%s\n'"
      

      然后myecho foo 扩展为printf '123.%s\n' foo,它可以满足您的需求。

      【讨论】:

        猜你喜欢
        • 2011-07-19
        • 2018-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-23
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多