在csh脚本中执行pwd命令

时间:2014-12-17 11:25:35

标签: csh

我正在尝试打印我运行脚本的位置。

我尝试使用以下内容:

#! /bin/csh -f
var=$(pwd)

echo $var

我得到以下输出:

  

非法变量名称

1 个答案:

答案 0 :(得分:3)

您使用的语法适用于bash,ksh,zsh和其他一些语法。

Csh有自己的语法来分配变量,并且不支持$( cmd ...)形式的进程替换。

尝试

#! /bin/csh -f
set var = `pwd`   

echo "$var"

请注意,要执行相当于export var=x的操作,您需要执行

setenv var `pwd` 

正如@Carpetsmoker提醒我们的那样,[t]csh有2个包含此信息的环境变量,

 $cwd
 $PWD

所以在这种情况下没有理由招致使用命令替换的额外进程费用,所以你的脚本可以

#! /bin/csh -f
set var = $cwd
#OR
set var = $PWD


echo "$var"

最后,作为任何shell的良好编码实践,请注意我引用了"$var"的引用。你应该养成引用你的变量的习惯,这将消除使用echo去除任何多余空格的一整类问题,并保留带空格作为一个单元的路径或文件名。

IHTH