代码之家  ›  专栏  ›  技术社区  ›  Victor Liu

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

  •  1
  • Victor Liu  · 技术社区  · 14 年前

    我不确定这是否可能,但是有没有一种方法可以编写既可以由bourne shell解释又可以由cshell解释的shell脚本呢?我想避免简单地检查shell并运行特定于shell的代码。如果这是可能的,有没有关于如何做的指南?

    我总是为bourne shell语法编写脚本,对csh几乎一无所知,所以这可能是个愚蠢的问题。我已经在google上找到了shell之间的区别,但是(据我所知)很少有关于它对脚本编写的影响的信息。

    3 回复  |  直到 14 年前
        1
  •  2
  •   compie    14 年前

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

    #!/bin/sh
    

    这个贝壳(几乎?)随时可用。

        2
  •  1
  •   Norman Ramsey    14 年前

    用多种语言编写一个有效程序的文本是可能的(事实上在一个错误页面上有一个文本),但是这些东西几乎没有用处它们只是好奇,只是为了炫耀聪明。

    unix所提供的非常有用的是 保证 脚本的语言,不管使用什么shell(或其他程序)来调用脚本。这就是所谓的“sharp bang”语法。所以你选了你最喜欢的贝壳(我非常喜欢伯恩贝壳而不是C贝壳,而且 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……

        3
  •  0
  •   ghostdog74    14 年前

    你可以试试看 this book . 否则,学习使用python或perl之类的语言。它的基本编程语法(如流控制、数据结构、循环)几乎都是新旧版本的标准。