正文
要设置环境变量,您需要使用export关键字:
设置环境变量时,所有子进程将看到该环境变量。所以如果你运行export MYVAR=2; python test.py,python程序将MYVAR设置为2。
第二种变量是全局变量。同样像上面那样赋值。
在其他编程语言中他们表现得像全局变量。
还有局部变量,它们的作用域只能存在于bash函数中。 我基本上从来没有使用过这样的函数(不像我写的其他编程语言),我从来没有使用过局部变量。
以下是我在bash中编写循环的方法。 此循环将从1打印到10。
如果你想用一行代码写这个循环,可以这样写:
我觉得这是不可能记住的(你要怎么记住在 seq 1 10 之后有一个分号,但是在 do 之后却没有了),所以我不会去记它。
你也可以写while循环,但我从来没有这样写过。
有个很酷的事情是你可以遍历另一个命令的输出。seq 1 10 将数字从1到10(每行一个)打印,这个for循环只是提取该输出并遍历它。我就经常用这种方法。
您也可以使用反引号或$()来插入命令的输出。
在 bash 中的 If 语句是相当让人讨厌去记它。你必须放在这些方括号中,而在方括号之间必须有空格,否则它不起作用。[[ 和 [ 方括号(双/单) 都工作。 这里我们真正进入 bash 的奇怪领域:[ 是一个程序 (/usr/bin/[) 但 [[ 是 bash 语法。[[ 更好。
此外,您可以检查“此文件存在”,“此目录存在”等内容。例如,您可以检查文件 /tmp/awesome.txt 是否存在,如下:
这通常是有用的,但我必须每次查找语法。
如果您想尝试用命令行,可以使用 test 命令,例如 test -e /tmp/awesome.txt 。 它成功会返回0,否则返回错误。
最后一件事是为什么[[比[好:如果你使用[[,那么你可以使用
还有一个额外的最后一件关于 if 的事:我今天学到是不需要通过[[或者[去使用 if 语句:任何有效的命令都会工作。 所以你可以这样做:
在 bash 中定义和调用函数(特别是没有参数)是非常容易的。