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 忽略了 任何 setuid 和 setgid 设置。
注: 如果使用带有 -c 或 -s 标志的 csh 命令,那么不应指定脚本文件。
如果指定脚本文件,那么该命令将打开该文件并保存脚本文件名,以便通过以下方法进行可能的重新替换:$0(美元符号,零)。 脚本的执行是通过 csh。 保持参数初始化 argv 变量。
注意:
- 如果 C shell 已在运行,那么可以通过输入以下命令再次读取 .cshrc 文件: source Pathname,其中 Pathname 参数是 .cshrc 文件的路径。
- 为避免远程操作出现问题, .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 参数。 |