csh 命令

用途

调用 C shell。

语法

奇赫-V ] [  -x -X ] [  -e ] [  -f ] [  -我 ] [  -n ] [  -c 字符串 -s -t ] [  -b ] [ 文件 参数 ] ]

描述

C shell 是一个交互式命令解释器和一种命令编程语言,采用的语法类似于 C 编程语言。 这个 shell 可交互式地从终端键盘或从一个文件中执行命令。 这个 csh 命令调用了 C shell。

当调用 csh 命令时就会执行,这是通过查找主目录和执行命令从 .cshrc 文件(用来存储用户化的用户信息)中,执行的条件是命令存在。 如果 csh 命令作为一个登录 shell 程序运行,就会从 .cshrc .login 文件中执行命令。

当 shell 处理完标志参数后,如果 -i-c -s-t 标志都未被指定,并且 File [Parameter] 被指定,那么 shell 就会执行脚本文件,此文件指定于 File [Parameter],包含了任何指定的参数。 指定的脚本文件必须拥有读取权限;shell 忽略了 任何 setuidsetgid 设置。

注: 如果使用带有 -c-s 标志的 csh 命令,那么不应指定脚本文件。

如果指定脚本文件,那么该命令将打开该文件并保存脚本文件名,以便通过以下方法进行可能的重新替换:$0(美元符号,零)。 脚本的执行是通过 csh。 保持参数初始化 argv 变量。

注意:
  1. 如果 C shell 已在运行,那么可以通过输入以下命令再次读取 .cshrc 文件: source Pathname,其中 Pathname 参数是 .cshrc 文件的路径。
  2. 为避免远程操作出现问题, .cshrc 文件不应包含任何回传输出的函数,除非它们针对 $prompt 变量进行测试,这表示 shell 是交互式的。 否则,每当一个远程系统使用 exec 命令在本地系统进行命令发送,命令和 shell 均被执行。 例如,exec csh rcp -t Filename执行 .cshrc 文件,并将回传的输出视为期望的响应。 一个 if 子句可用来检查 $prompt 变量。

标志

如果最初的 shell 的参数是一个 -(负号),此 shell 就是一个登录 shell 程序。 C shell 标志被解释如下:

描述
-b 强迫选项处理中断,会引起任何增进 shell 参数被处理为无选项参数。 此标志可用来传送选项到一个 shell 脚本,而不会引起混淆和可能的欺骗。 此 shell 不能运行真实和有效用户和组标识与此标志不同的脚本。
-c 从以下单个自变量中读取命令,此参数必须出现。 任一剩余的参数放在 argv 变量中。
-e 如果任一受调用命令异常结束或产生非零退出状态则退出。
-f 启动 C shell 不需要从位于主目录下的 .cshrc 文件搜索或运行命令。
-i 提示它的最高层输入(一个交互式 shell),甚至如果输入并不是来自于工作站。 如果 shell 的输入、输出与工作站连接,shell 是交互的,不需要此标志。
-n 语法分析命令但并不运行它们。 此标志帮助进行 shell 过程的语法检查。
-s 以标准输入执行命令输入。
-t 读取和处理输入的单行。 在当前行的末尾并继续到下一行时,可以采用一个 \ (反斜杠) 转义新一行的字符。
-V .cshrc 文件运行以前设置 verbose shell 变量。
-v 设置 verbose shell 变量,使命令输入在历史置换后被返回。
-X 即使在 .cshrc 文件运行以前也设置 echo shell 变量。
-x 设置 echo shell 变量,使命令在所有置换后和立即运行以前被返回。

文件

描述
$HOME/.cshrc 在执行开始时由每个 shell 读取。 .cshrc 文件是用户定义的。
$HOME/.login 登录时在 .cshrc 文件之后由登录 shell 程序读取。
$HOME/.logout 在注销时由登录 shell 程序读取。
/usr/bin/sh 包含缺省 shell 程序的路径。
/tmp/sh* 包含 <<的临时文件。
/etc/passwd 包含主目录的源,此源用于 ~File 参数。