shell入门学习笔记-02hello world、四种脚本运行方式

版权声明:本文为博主hanchao5272原创文章,转载请注明来源,并留下原文链接地址,谢谢! https://blog.csdn.net/hanchao5272/article/details/86430052

系列目录与参考文献传送门: shell入门学习笔记-序章

Hello World

hello.sh

#! /bin/bash
# my first shell

echo "What's your name?" # 这是一个条注释
read NAME
echo "Hello World, My Name is $NAME"
  • .sh扩展名并不影响脚本的运行,只是为了见名知意。
  • #!是一个约定标记,告诉系统本脚本需要什么解释器来执行,即使用哪种shell,后面的/bin/bash指明了解释器位置。
  • #及后面的内容是注释。
  • read用来从终端获取用户的输入内容,并存放在变量NAME中。
  • $放在变量之前,用来输出变量的内容。

四种脚本执行方式

执行脚本方式一:作为可执行程序

admindeMacBook-Pro:~ admin$ mkdir myshell
admindeMacBook-Pro:~ admin$ cd myshell/
admindeMacBook-Pro:myshell admin$ ls
admindeMacBook-Pro:myshell admin$ vi hello.sh
admindeMacBook-Pro:myshell admin$ chmod +x hello.sh
admindeMacBook-Pro:myshell admin$ ./hello.sh
What's your name?
韩超
Hello World, My Name is 韩超
  • cd myshell/进入脚本所在的目录。
  • chmod +x hello.sh为脚本文件添加执行权限。
  • ./hello.sh执行当前目录(./)下的hello.sh,如果不加./,linux会到系统路径下寻找脚本,显然会失败。

执行脚本方式二:通过.执行。

admindeMacBook-Pro:myshell admin$ ls
hello.sh
admindeMacBook-Pro:myshell admin$ chmod -x hello.sh
admindeMacBook-Pro:myshell admin$ ./hello.sh
-bash: ./hello.sh: Permission denied
admindeMacBook-Pro:myshell admin$ . ./hello.sh
What's your name?
韩超
Hello World, My Name is 韩超
  • chmod -x hello.sh取消脚本的执行权限。
  • -bash: ./hello.sh: Permission denied直接执行脚本会报错。
  • . ./hello.sh通过.执行脚本不会报错。

执行脚本方式三:通过`source执行。

admindeMacBook-Pro:myshell admin$ ls
hello.sh
admindeMacBook-Pro:myshell admin$ source hello.sh
What's your name?
Jone
Hello World, My Name is Jone
  • source hello.sh可以读取并执行当前目录下的脚本,无需添加目录位置./

执行脚本方式四:作为解释器参数。

admindeMacBook-Pro:myshell admin$ /bin/bash hello.sh
What's your name?
David
Hello World, My Name is David
  • /bin/bash hello.sh其中脚本名hello.sh只是解释器/bin/bash的一个参数。
  • 此种情况下,无需添加目录位置./
  • 此种情形下,脚本内容的第一行可以去掉。

猜你喜欢

转载自blog.csdn.net/hanchao5272/article/details/86430052