编写高效优越Bash剧本的提议
在bash中变量赋值凭证下面的方法: VARIABLE=2而且你可以行使$VARIABLE(变量名)来引用变量。必要留意的是不要在=运算符的双方安排空格符,好比VARIABLE= 2、VARIABLE = 2、可能VARIABLE =2,这并不是语法错误,可是将会做完全不必要的工作(好比试图运行一个名字为2的措施,并将情形变量VARIABLE配置为空字符串)。 Bash变量并不要叱责部大写,可是凡是是大写的。 大大都你所行使的bash变量都是字符串。在bash中也有一些数组变量,但我并不是完全领略它们。 行使${}引用变量 偶然某些变量,内容为file.txt,而且我想这样行使它: mv $MYVAR $MYVAR__bak # wrong!这段代码是无法事变的!它会去查找 MYVAR__bak变量,但这并不是一个真实存在的变量。 为了停止相同题目,你必要知道的仅仅是 ${MYVAR}和$MYVAR是一回事。以是你可以这样运行指令: mv $MYVAR ${MYVAR}__bak # right!全局变量,局部变量和情形变量 Bash有3种变量。我一样平常先想到(也许也是最常用)的是 情形变量 。 Linux上的每个历程现实上都有情形变量(您可以运行env查察当前配置的变量),但在Bash中,它们更易于会见。要查察名为MYVAR的情形变量,可以运行 echo "$MYVAR"要配置情形变量,您必要行使export要害字: export MYVAR=2配置情形变量时,全部子历程将看到该情形变量。以是假如你运行export MYVAR=2; python test.py,python措施将MYVAR配置为2。 第二种变量是 全局变量 。同样像上面那样赋值。 MYVAR=2在其他编程说话中他们示意得像全局变量。 尚有 局部变量 ,它们的浸染域只能存在于bash函数中。 我根基上从来没有行使过这样的函数(不像我写的其他编程说话),我从来没有行使过局部变量。 for轮回 以下是我在bash中编写轮回的要领。 此轮回将从1打印到10。 for i in `seq 1 10` # you can use {1..10} instead of `seq 1 10` do echo "$i" done假如你想用一行代码写这个轮回,可以这样写: for i in `seq 1 10`; do echo $i; done我认为这是不行能记着的(你要怎么记着在 seq 1 10 之后有一个分号,可是在 do 之后却没有了),以是我不会去记它。 你也可以写while轮回,但我从来没有这样写过。 有个很酷的工作是你可以遍历另一个呼吁的输出。seq 1 10 将数字从1到10(每行一个)打印,这个for轮回只是提取该输出并遍历它。我就常常用这种要领。 您也可以行使反引号或$()来插入呼吁的输出。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |