入门
第一个shell程序,
新建文件 run_shell 在里面输入下面的代码。
#!/bin/bash
echo hello world
第一行表示使用的是bash shell。shell中的#号表示注释,但是第一行比较特殊,一般以#!开始来指定shell的类型。在linux中,除了bash以外,还有其他的shell版本,比如 zsh、dash等。我们常用的还是bash shell。
运行第一个shell脚本。
刚才新建的 run_shell 文件现在还是不能执行的,需要给它赋可执行的权限,在linux上执行 chmod +x run_shell 即可,可执行文件的颜色和普通文件不一样的。
最后执行 ./run_shell 。
如果直接执行 run_shell 会默认到 $PATH 环境中查找,但是我们没有在里面配置,所以会找不到该可执行文件。./ 表示当前目录下。
shell 变量的定义
shell编程中有2种变量,一种是进程自己拥有的,叫环境变量,一般可以直接使用,如 $PATH , $HOME 等,也可以添加自己的环境变量,另外一种是我们自己定义的变量,使用范围一般只能在shell 脚本里面。
#!/bin/bash
#使用环境变量
echo $PATH
#自定义变量 hello
hello="first hello world"
echo $hello
hello_s=fisthellowolrd
echo $hello_s
注意,定义变量的时候,不用美元符合 $,使用变量的时候,要加上美元 $。大家可能已经注意到了,上面有一个变量值没有加 “”,这是因为在shell编程中,如果变量出现空格或者引号,那么必须加上 “”,否则可以省略。
还有一点要注意的是,等号(=)的两边不能出现空格。
将linux命令执行结果赋值给变量
#!/bin/bash
path1=$(pwd)
path2=`pwd`
echo path1 is: $path1
echo path2 is: $path2
file1=$(ls -al)
file2=`ls -al`
echo file1 is: $file1
echo file2 is $file2
上面演示了2种方式来给linux变量赋值,注意 path2和file2那个不是单引号,而是键盘左上角的 ~ 符号。