如何编写可以在bash和csh中运行的脚本?

时间:2010-04-13 18:56:41

标签: shell scripting

我不确定这是否可能,但是有没有办法编写可以由Bourne shell和C shell解释的shell脚本?我想避免简单地检查shell并运行特定于shell的代码。如果可以的话,有没有关于如何做的指南?

我总是为Bourne shell语法编写脚本,而且我对csh几乎一无所知,所以这可能是一个愚蠢的问题。我已经谷歌了解了shell之间的差异,但是关于它对脚本的影响的信息很少(据我所知)。

3 个答案:

答案 0 :(得分:2)

如果您的脚本很简单,建议使用:

#!/bin/sh

这个shell(几乎?)始终可用。

答案 1 :(得分:1)

可以用多种语言编写一个有效程序的单个文本(事实上,这是SO错误页面中的一个),但这些东西几乎从来没有用 - 它们只是好奇心,只是为了显示关闭聪明。

Unix提供的功能非常有用,它是保证脚本语言的一种方式,无论用于调用脚本的shell(或其他程序)是什么。这就是所谓的“尖锐爆炸”语法。所以你选择你最喜欢的shell(我非常喜欢Bourne shell到C shell,file /usr/bin/* | grep shell同意我),然后你写了

#!/bin/sh

export PATH=/usr/local/bin:$PATH
print "I am running as Bourne shell no matter what your login shell is!"

有时写一些更复杂的东西是有用的;我有几个以

开头的脚本
#/usr/bin/env lua5.1

你也可以使用perl,python,ruby,......

答案 2 :(得分:0)

您可以尝试阅读this book。否则,学会使用像Python或Perl这样的语言。它的基本编程语法,例如流控制,数据结构,循环几乎都是旧版本和新版本的标准。