【问题标题】:.bash_profile alias with variables [duplicate].bash_profile 带有变量的别名[重复]
【发布时间】:2019-01-28 05:52:37
【问题描述】:

我正在尝试创建一个别名,该别名将创建一个文件并在 VS Code 中打开它。

创建一个名为create <filename> 的别名,它将执行touch <filename> && code <filename>

例如create app.js 应该执行touch app.js && code app.js

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    来自man bash,下ALIASES

    没有在替换文本中使用参数的机制。如果需要参数,则应使用 shell 函数(请参阅下面的函数)。"

    因此:

    create() { touch "$1"; code "$1"; }
    

    【讨论】:

    • 你应该几乎总是双引号变量(和参数)。此外,function 关键字是非标准的;我推荐语法create() { touch "$1"; code "$1"; }
    • @GordonDavisson:我同意引用。我不同意function:标签是bash,而不是sh,所以标准是man bash 所说的。
    • man bash 表示 function 关键字是可选的。无论如何,把它放在那里只会让你的代码不那么便携。
    • @tripleee:我想我也应该用x += 1替换C中的所有x++,因为Ruby无法理解++,以防万一......好吧......
    • 那是 reducio ad absurdum。 Shell 脚本可以移植或特定于特定的 Shell。如果您需要来自特定外壳的功能,那么追求可移植性当然没有任何意义。但无故破坏其他可移植代码只是懒惰。
    猜你喜欢
    • 2011-05-25
    • 2017-01-17
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多