Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在unix命令行中传递参数_Linux_Unix_Arguments_Command Line Arguments - Fatal编程技术网

Linux 在unix命令行中传递参数

Linux 在unix命令行中传递参数,linux,unix,arguments,command-line-arguments,Linux,Unix,Arguments,Command Line Arguments,如何在unix中向命令传递参数?例如,如果我必须打开一个文件: R> vi john/pic/mars/NASA/rover.txt 在上面的vi命令中,我想用一个变量替换“mars”,并在同一行中传递变量值,如下所示: R> vi john/pic/$variable/NASA/rover.txt | $varaiable=pluto variable=pluto; vi john/pic/$variable/NASA/rover.txt 这当然行不通。但我希望我的问题是清楚

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

R> vi john/pic/mars/NASA/rover.txt
在上面的
vi
命令中,我想用一个变量替换“mars”,并在同一行中传递变量值,如下所示:

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

这当然行不通。但我希望我的问题是清楚的。有人能帮我吗?

只需将变量定义移到命令行的开头,如下所示:

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

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

  • 请注意,定义变量时不能使用
    $
    ,只能在使用变量值时使用
  • vi
    命令管道化到变量赋值没有多大意义,尽管您可以通过以下方式实现更清晰的参数化:


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