TCSH,这条线做什么?试图移植到BASH

时间:2014-04-03 15:08:49

标签: bash csh tcsh

我尝试将某些脚本从tcsh更新为bash以反映某些用户的bash偏好。不用说,我不知道csh。有人能告诉我这行是做什么的吗?

alias prepend 'if (-d \!:2) if ("$\!:1" \!~ *"\!:2"*) export \!:1 "\!:2":${\!:1}'

1 个答案:

答案 0 :(得分:3)

如果所述目录在所述变量中已经存在,可能将一个目录添加到变量上。

这里用英语说的:如果第二个参数是一个目录,那么如果第一个被解释为变量的参数不包含第二个参数的文本,那么" export&#34 ;字符串"第二个参数冒号内容的第一个参数"进入第一个论点。

这完全取决于export的作用。根据我的经验,exportsetenv的别名,但不能保证。

我建议进行测试,看看这是否符合我的想法。首先,回应你的道路。然后运行prepend PATH /a/new/directory/that/exists。然后再次呼应你的道路。如果你看到" / a / new / directory / that / exists"现在在你的路径变量中,那么你可以合理地确定export是setenv的别名。

最后,this SO post lists strategies在其他语言和shell中实现类似的东西。