4.3.2 TCSH和C Shell环境变量
在TCSH和C Shell中,可以使用独立的定义命令setenv来定义环境变量。从这个角度而言,环境变量实际上是与常规的局部变量完全不同的变量类型。C Shell环境变量操作形式非常类似于一个全局变量。可以直接被任意子shell所引用。不同于Bourne、BASH和Korn shell之处在于,只存在环境变量的一个副本,并被所有子shell所使用。
为定义一个环境变量,必须在输入setenv命令之后输入变量名和变量值。不存在赋值操作符。在下面的范例中,定义环境变量myfile,并赋予值List。
- % setenv myfile list
- dispfile
- setenv myfile "List"
- echo "Displaying $myfile"
- cat -n $myfile
- printfile
- printfile
- -----------------------------------
- echo "Printing $myfile"
- lpr $myfile &
dispfile脚本的运行结果如下所示:
- % dispfile
- Displaying List
- 1 screen
- 2 modem
- 3 paper
- Printing List
- $
在上面的范例中,在脚本dispfile中变量myfile被定义为环境变量。请注意,此处使用setenv命令,而不是set。现在,myfile可以在任意子shell中使用,比如当printfile脚本被执行时所创建的子shell。
当printfile被执行时,它能直接访问dispfile脚本中所定义的myfile变量。