使用和操作 tcsh shell 变量

tcsh 是最流行的 UNIX® shell 之一。学习如何用 tcsh shell 变量简化自己的工作以及如何利用 tcsh 的高级安全特性。

tcsh 是原来的 Berkeley UNIX C shell 的改进版本,它是最流行的 UNIX shell 之一。本文讨论 tcsh 提供的一些功能:它提供的 shell 变量可以减少几个常规任务花费的时间,还提供了一些高级的安全特性,比如监视用户及其命令历史。本文描述的所有命令和脚本都用 tcsh 6.15 测试过(参见 参考资料)。

如何设置 shell 变量

tcsh 提供几个内置的 shell 变量。其中一部分(比如 rmstarnoclobber)是布尔值,所以建议用 set <variablename> 打开它们。对于 prompt 等其他内置变量,需要使用 set <variablename>=<value> 提供一个值。使用 unset <variablename> 取消变量。清单 1 给出一些基本示例。


清单 1. 如何设置/取消 shell 内置变量
tcsh# set prompt="arpan@tintin# "
arpan@tintin# set autologout=1
arpan@tintin# unset prompt
echo $autologout
1
<prompt has disappeared due to unset operation>

下面几节讨论 tcsh 通过 shell 内置变量提供的一些最有用的特性。

用 rmstar 预防灾难

在 UNIX 中,造成混乱的最常见原因可能是意外地执行了 rm *。大多数用户在使用 rm 命令时不使用 -i 选项,因此会立即删除文件。tcsh 定义了一个 shell 变量 rmstar;如果打开这个变量,在用户执行操作时会显示提示,要求用户确认操作。但是,如果用户在命令提示下运行 rm –f *,就不会出现确认提示。清单 2 演示 rmstar 的用法。


清单 2. 使用 rmstar shell 变量
arpan@tintin# pwd
/home/arpan/scratchpad
arpan@tintin# ls
file1 file2
arpan@tintin# set rmstar
arpan@tintin# rm *
Do you really want to delete all files? [n/y] n
arpan@tintin# ls
file1 file2
arpan@tintin# unset rmstar
arpan@tintin# rm *
arpan@tintin# ls
arpan@tintin#

防止意外覆盖现有的文件

造成混乱的另一个典型场景是意外地覆盖现有的文件。为了防止发生这种情况,应该一直打开 shell 变量 noclobber。(这个变量在 csh shell 中也可用)。注意,这只能防止把输出重定向到现有文件;如果使用 cpmv 覆盖文件,这个变量没有任何帮助。见清单 3。


清单 3. 使用 noclobber 防止意外覆盖文件



本文转自IBM Developerworks中国

      请点击此处查看全文


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值