C-shell中的位置参数

时间:2015-08-06 06:41:10

标签: linux shell csh

我无法使用此shell命令打印位置参数:echo $1

我使用它作为以下两个命令:

% set hi how are you
% echo $1

命令没有任何结果,但hi应该打印出来。

1 个答案:

答案 0 :(得分:1)

在csh中,您需要分配到argv数组:

> set argv=(hi how are you)
> echo $1
hi

<强>解释

argv是一个数组变量,它包含命令行参数列表(第0个参数是名称,因为shell被调用而另一个从第1个索引开始)。变量$0 - $n也包含参数的值。因此$argv[1]$1相同。要分配给数组变量,您可以使用set arr=(value1 value2)set arr[1] = value1

set value1 value2可以在bash中使用,但csh与C语言类似,因此使用argv数组(稍微阅读一下C程序)命令行参数,如果你不知道为什么)。

但是在csh中,这个:set first second表示为变量firstsecond分配一个空(null)值。