按照国际惯例,首先用来输出一个 hello world
1 #!/bin/bash 2 #第一个shell脚本 3 echo hello world
我们把这个文件命名为 hello,当在命令行输入 hello 的时候
David~MackBook:shell_test$ hello -bash: hello: command not found
提示命令找不到,那么如何让系统找到 hello 脚本呢?
将shell脚本所处的目录添加到 PATH 环境变量中 在提示符中使用绝对或相对文件路径来引用shell脚本文件对于第一种方法,最简单的方法就是在命令行输入
David~MackBook:shell_test $ PATH=$PATH:. David~MackBook:shell_test $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:.
冒号后面的点就是代表当前目录,这样,无论我们进入到哪个目录,系统都可以在当前目录下找到这个文件。
对于第二种方法,就更简单了,如果用相对路径的话就是 ./hello,如果用绝对路径的话就是 ~/shell_test/hello
假设现在用了第一种方法,当我们再在命令行输入 hello 的时候
David~MackBook:shell_test $ hello -bash: ./hello: Permission denied
提示权限拒绝,因为文件创建时,属主是没有执行权限的(当然你也可以设置 umask 值,从而在创建的时候有执行权限),所以现在要加上属主的执行权限
chmod u+x hello David~MackBook:shell_test $ ls -li hello 5572257 -rwxr--r-- 1 David staff 51 7 11 23:35 hello
现在hello文件具有了执行权限,当我们再在命令行执行 hello 命令的时候,就可以正常输出
David~MackBook:shell_test $ hello hello world