壳牌从入门到放弃(上)

  

壳牌从入门到放弃(上)












# !/bin/bash

# !/bin/tcsh

# !/usr/bin/python3

# !/usr/bin/perl

命令的堆积;

但是很多不命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足,以避免运行中产生错误;

(1)赋予执行权限,并直接运行此程序文件;

chmod + x,/路径//SCRIPT_FILE

/路径//SCRIPT_FILE

(2)直接运行解释器,以脚本文件为参数;

bash,/路径//SCRIPT_FILE

(1) #开头的行会被解释器忽略;

(2)空白行会被解释器忽略;

# !/bin/bash   #却;能够is  my  first  shell 脚本   echo “hello, world !"


壳支持自定义变量。

  定义变量

定义变量时,变量名不加美元符号(美元),如:

 variableName="价值" 

同时,变量名的命名须遵循如下规则:

<李>

  首个字符必须为字母(a - z、a - z)。

<李>

  中间不能有空格,可以使用下划线(_).

<李>

  不能使用标点符号。

<李>

  不能使用bash里的关键字(可用帮助命令查看保留关键字)。


变量定义举例:

myUrl=" http://zhaoyongtao.blog.51cto.com/"   myNum=100

  使用变量

使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:

your_name=敖稹?   echo  your_name 美元;   echo  $ {your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

水果=捌还?   echo “小姐:like  ${水果}s”

如果不给水果变量加花括号,写成回声”我like 美元的果实”,解释器就会把水果当美元成一个变量(其值为空),代码执行结果就不是我们期望的样子了。


  重新定义变量

已定义的变量,可以被重新定义,如:

myUrl=" http://zhaoyongtao.blog.51cto.com "   echo  $ {myUrl}      myUrl=" https://blog.51cto.com "   echo  $ {myUrl}

这样写是合法的,但注意,第二次赋值的时候不能写$ myUrl=" https://blog.51cto.com/",使用变量的时候才加美元符(美元)。

  只读变量

使用<强>只读的强命令可以将变量定义为只读变量,只读变量的值不能被改变。

下面的例子尝试更改只读变量,结果报错:

# !/bin/bash      myUrl=" http://zhaoyongtao.blog.51cto.com/"   readonly  myUrl   以前myUrl=" https://blog.51cto.com/"


运行脚本,结果如下:

/bin/sh:,名字:,却;能够variable  is  read 只有。

  删除变量

使用<强>设置强命令可以删除变量。语法:

unset  variable_name

变量被删除后不能再次使用,设置命令不能删除只读变量。

举个例子:

# !/bin/sh      myUrl=" http://zhaoyongtao.blog.51cto.com/"   unset  myUrl   echo  $ myUrl

上面的脚本没有任何输出。

  变量类型

运行shell时,会同时存在三种变量:

  1)局部变量

局部变量在脚本或命令中定义,仅在当前壳实例中有效,其他壳启动的程序不能访问局部变量。

  2)环境变量

所有的程序,包括壳体启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

  3)壳变量

壳变量是由壳程序设置的特殊变量.shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了外壳的正常运行


前面已经说到,变量名只能包含数字,字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。

壳牌从入门到放弃(上)