我无法使用此shell命令打印位置参数:echo $1
。
我使用它作为以下两个命令:
% set hi how are you
% echo $1
命令没有任何结果,但hi
应该打印出来。
答案 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
表示为变量first
和second
分配一个空(null)值。