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

news/2024/7/7 12:48:17

系列目录与参考文献传送门: 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的一个参数。
  • 此种情况下,无需添加目录位置./
  • 此种情形下,脚本内容的第一行可以去掉。

http://www.niftyadmin.cn/n/2815381.html

相关文章

shell入门学习笔记-03变量与函数

系列目录与参考文献传送门: shell入门学习笔记-序章 变量 一般情况下,Shell变量都是字符串,无论赋值时是否使用引号,无论是否是一串数字。 三种变量赋值方式 # 三种赋值方式 nameJack nameJack name"Jack"# 错误的赋值方式1&am…

小程序下拉循环显示

<text classfs28 c9 ml15>预约专家</text><picker name"u_consultation" bindchange"zhuanjiachange" value"{{index}}" range"{{zjarrs}}"><view wx:if"{{index }}" classfs24 c9 ml100>请选择要…

网易云音乐代码音乐播放器调用

单曲调用代码: <iframe frameborder"no" border"0" marginwidth"0" marginheight"0" width100% height86 src"http://music.163.com/outchain/player?type2&id299757&auto1&height66"></iframe> 参…

一些关于网页标题的动态js特效

1.当转换页面时&#xff0c;标题改变 <script> document.addEventListener(visibilitychange,function(){ if(document.visibilityStatehidden) { normal_titledocument.title; document.title(づ&#xffe3; 3&#xffe3;)づ; } else document.titlenormal_title; });…

25、rsync学习笔记

rsync&#xff1a;remote sync 优点&#xff1a;通过对比源目的文件&#xff0c;实现增量备份&#xff0c;传输速度快。可通过crontab实现自动化备份。缺点&#xff1a;由于需要对比源目的文件&#xff0c;所以比较耗时。但是由于crontab本身最小时间间隔的限制&#xff0c;数据…

centos搭建bug管理系统(禅道)

2019独角兽企业重金招聘Python工程师标准>>> 1.下载禅道安装包 http://dl.cnezsoft.com/zentao/9.7/ZenTaoPMS.9.7.stable.zbox_64.tar.gz 2.拷贝并解压安装包到centos的/opt/目录下tar -zxvf ZenTaoPMS.9.7.stable.zbox_64.tar.gz -C /opt 3.设置指向mysql./zbox …

linux查找截取一段时间的日志

查找一段时间的日志cd logs 下查找2018-08-08 00:00到2018-08-09 09:28 之问的日志sed -n /2018-08-08 00:00/,/2018-08-09 09:28/p catalina.out >catalina.log然后 cat catalina.log看一下时间

3D空间的旋转的各种等价形式

旋转矩阵 欧拉轴和角度&#xff08;旋转矢量&#xff09; 欧拉旋转 四元数