shell script 学习记录

来源:互联网 发布:mysql employees 编辑:程序博客网 时间:2024/05/01 22:26

学习的是《鸟哥的Linux私房菜 基础学习篇》(第三版)第13章


第一个实例script 。文件的内容是这样的:

</pre><span style="font-size:18px;"></span><pre name="code" class="html"><span style="font-size:18px;">#!/bin/bash#Program:#This program shows "hello world!" in your screen.#History#2016/09/23  first releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHecho -e "hello world! \a \n"exit 0</span>

最开始使用./sh01.sh运行会说permission denied。这是因为文件还不是可执行的。我是直接使用chmod 777 sh01.sh 

不知道为什么,结果是这样的。书上还说,会听到“咚”的一声,于是我带上耳机,可是半天啥也没听到,都要怀疑自己听力有问题了==

(下载了截图工具 sudo apt-get install scrot  ,然后,只用scrot -s 就可以截图了,图片是保存在当前目录下)


遇到问题,解决问题。

sh01.sh中,就是echo那行是真正起作用的。实际上直接在终端输入echo -e "hello world! \a \n"的结果应该和文件执行的结果是一样的。

屏幕上的结果是下图这样的,还是没有听到“咚”的声音==


看来是 sh sh01.sh命令的结果有问题。

echo 后面加上-e之后,会启用加斜杠转义符。

具体效果如下图所示:


从http://bbs.51cto.com/thread-1096454-1-1.html看到有人这么回答。感觉很靠谱。

./需要执行权限
sh不需要,sh是个软链接,它可能是一个任意的shell,通常默认是bash shell
用type命令可以查看
./执行调用的是开头一行定义的shell,不指定系统会调用默认shell程序

所以,./运行会和敲命令的效果一样,而sh运行脚本文件,可能不太一样(具体表现就是echo -e的意义不同)。






0 0
原创粉丝点击