【问题标题】:Passing arguments in unix in command line在命令行中在 unix 中传递参数
【发布时间】:2014-05-21 02:29:14
【问题描述】:

如何将参数传递给 unix 中的命令?例如,如果我必须打开一个文件:

R> vi john/pic/mars/NASA/rover.txt

在上面的vi命令中,我想将“mars”替换为一个变量,并在同一行传递变量值,如:

R> vi john/pic/$variable/NASA/rover.txt | $varaiable=pluto

这当然行不通。但我希望我的问题很清楚。谁能帮我解决这个问题?

【问题讨论】:

  • @n.m.我也会这么认为,但变量实际上只在启动的进程本身中定义,而不是当前的命令行(在 Bash 4.2.45(1) 中;可能是一个特性)。你真的试过了吗(没有错字?)。
  • 抱歉打错字了。是的,我也试过没有错别字。

标签: linux unix arguments command-line-arguments


【解决方案1】:

只需将变量定义移到命令行开头即可,如:

variable=pluto; vi john/pic/$variable/NASA/rover.txt

甚至:

variable=pluto && vi john/pic/$variable/NASA/rover.txt

OBS

  1. 请注意,您不能在定义变量时使用$,只能在使用它们的值时使用;
  2. vi 命令传递给变量分配没有多大意义,尽管您可以通过以下方式实现一些更清晰的参数化

    function opener() {
        vi john/pic/$1/NASA/rover.txt
    }
    $ opener "pluto"
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2012-07-11
    • 2013-08-10
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多