在 bash 中定义环境变量的标准方法是: 【推荐阅读:可怕效果在游戏中的营造——怖、惧、悚、怯】
以上命令定义了一个名为 "myvar" 的环境变量,并包含字符串 "this is my environment variable!".以上有几点注意事项:第一,在等号 "=" 的两边没有空格,任何空格将导致错误(试一下看看).第二个件要注意的事是:虽然在定义一个字时可以省略引号,但是当定义的环境变量值多于一个字时(包含空格或制表键),引号是必须的. 【扩展信息:Programming in Lua翻译】
引用细节
有关如何在 bash 中使用引号的非常详尽的信息,请参阅 bash 帮助页面中的“引用”一节.特殊字符序列由其它值“扩展”(替换)确实使 bash 中字符串的处理变得复杂.本系列将只讲述最常用的引用功能.第三,虽然通常可以用双引号来替代单引号,但在上例中,这样做会导致错误.为什么呢?因为使用单引号禁用了称为扩展的 bash 特性,其中,特殊字符与字符系列由值替换.例如,"!" 字符是历史扩展字符,bash 通常将其替换为前面输入的命令.(本系列文章中将不讲述历史扩展,因为它在 bash 编程中不常用.有关历史扩展的详细信息,请参阅 bash 帮助页中的“历史扩展”一节.)尽管这个类似于宏的功能很便利,但我们现在只想在环境变量后面加上一个简单的感叹号,而不是宏.
现在,让我们看一下如何实际使用环境变量.这有一个例子:
$ echo $myvar this is my environment variable!通过在环境变量的前面加上一个 $,可以使 bash 用 myvar 的值替换它.这在 bash 术语中叫做“变量扩展”.但是,这样做将怎样:
$ echo foo$myvarbar foo我们希望回显 "foothis is my environment variable!bar",但却不是这样.错在哪里?简单地说,bash 变量扩展设施陷入了困惑.它无法识别要扩展哪一个变量:$m.$my.$myvar .$myvarbar 等等.如何更明确清楚地告述 bash 引用哪一个变量?试一下这个:
$ echo foo$bar foothis is my environment variable!bar
如您所见,当环境变量没有与周围文本明显分开时,可以用花括号将它括起.虽然
$myvar 可以更快输入,并且在大多数情况下正确工作,但 $
却能在几乎所有情况下正确通过语法分析.... 下一页