【发布时间】:2016-04-15 12:31:46
【问题描述】:
我正在查看托管在 github repository 中的 laravel homestead 源代码,并弄清楚该应用程序是如何工作的,并且想知道变量 ${1} - ${4}, ${PATH_SSL} 是在哪里声明的。
我想更好地了解 laravel homestead 的工作原理。
谢谢!
【问题讨论】:
我正在查看托管在 github repository 中的 laravel homestead 源代码,并弄清楚该应用程序是如何工作的,并且想知道变量 ${1} - ${4}, ${PATH_SSL} 是在哪里声明的。
我想更好地了解 laravel homestead 的工作原理。
谢谢!
【问题讨论】:
那些不是 Ruby。它类似于 Ruby 变量,但在 bash 脚本中。
例如,here PATH_SSL 正在定义中。此外,在接下来的几行中,它被用来(评估)来形成另一个文本。在 Bash 中,您可以使用评估语法 ${PATH_SSL}。
PATH_SSL="/etc/nginx/ssl"
PATH_KEY="${PATH_SSL}/${1}.key"
PATH_CSR="${PATH_SSL}/${1}.csr"
PATH_CRT="${PATH_SSL}/${1}.crt"
${1}、${2} 等是表示从命令行调用该脚本时使用的参数的特殊变量。
【讨论】:
confDir = $confDir ||=的意思
confDir = $confDir = "someValue",二是someVar ||= File.expand_path("~/.homestead")条件赋值运算符。第一个操作基本上为两个变量赋值。仅当 someVar 为 false 或 nil 时,第二个操作才将值 File.exppa... 分配给 someVar。所以,如果你把这两个结合起来,你最终会得到:如果$confDir变量没有被定义,将它的值设置为File.expand ...,否则什么都不做,然后将任何东西分配给本地变量confDir。