前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell编程01【执行方式】

shell编程01【执行方式】

作者头像
用户4919348
发布2019-04-02 10:23:04
5300
发布2019-04-02 10:23:04
举报
文章被收录于专栏:波波烤鸭波波烤鸭

  经常需要在Linux上操作,对应shell脚本来说应该还是要掌握的,所以最近打算将shell入门的相关的知识整理一下,以供大家查阅。

shell脚本

一、第一个shell脚本

  创建一个以’.sh’结尾的文件,并编译内容。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

保存文件,创建成功

代码语言:javascript
复制
#!/bin/sh

第一行命令说明:

  一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为:

代码语言:javascript
复制
#!/bin/bash

代码语言:javascript
复制
#!/bin/sh

注意:

  1. 在Shell中如果一行的第一个字母是#,则是注释,但是上面两个是写在第一行,所以不是脚本注释行,如果写在某个命令之后,则变成注释行。
  2. sh为bash的软链接,大多数情况下,脚本的开头使用“#!/bin/bash”和“#!/bin/sh”是没有区别的,但更规范的写法是在脚本的开头使用“#!/bin/bash”。

二、执行的方式

序号

方式

特点

1

'./'来执行

需要对文件授权,在当前父进程下的子进程中执行

2

bash(sh)来执行脚本

不需要授权,在当前父进程下的子进程中执行

3

source或( . )来执行

不需要授权,直接在父进程中执行

1. './'方式来执行

  执行此脚本 s2.sh:

代码语言:javascript
复制
#!/bin/bash
name1=bobo1
echo "hello shell"
在这里插入图片描述
在这里插入图片描述

  在没有授权的情况下执行如下:

代码语言:javascript
复制
[root@hadoop-node01 shellScript]# ./s2.sh
-bash: ./s2.sh: 权限不够

  执行授权操作

代码语言:javascript
复制
chmod -u+x s2.sh
chmod 777  s2.sh

  执行效果

在这里插入图片描述
在这里插入图片描述

2.bash来执行

  执行此脚本 s3.sh:

代码语言:javascript
复制
#!/bin/bash
name2=bobo2
echo "hello shell"

  不需要授权,可以直接执行

在这里插入图片描述
在这里插入图片描述
注意

  以上两种方式都是在父进程的子进程中执行的。子进程完成后,子进程中的各项变量或操作将会结束而不会传回到父进程中。比如我们在脚本中声明的变量name1和name2,我们在父进程中就获取不到,如下

在这里插入图片描述
在这里插入图片描述

可以看到,执行后再看脚本中两个变量,在父进程中不起作用!

3.source或者小数点来执行

  执行此脚本 s4.sh:

代码语言:javascript
复制
#!/bin/bash
name3=bobo3
echo "hello shell"

  执行命令效果如下:

在这里插入图片描述
在这里插入图片描述
注意

  这种方式是直接在父进程中执行了,我们可以看到脚本中声明的变量信息

在这里插入图片描述
在这里插入图片描述

总结

  直接执行与用source命令执行的区别,前者只作用于子进程本身,后者则作用于整个父进程。因此:如要想不注销系统,并让全局配置文件生效,则必须用source命令:   比如说: 在全局配置文件中/etc/profile添加了JAVA_HOME,要让他对整个环境生效

代码语言:javascript
复制
export JAVA_HOME=/usr/java/jdk1.8

就必须执行 source /etc/profile

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • shell脚本
    • 一、第一个shell脚本
      • 第一行命令说明:
    • 二、执行的方式
      • 1. './'方式来执行
      • 2.bash来执行
      • 3.source或者小数点来执行
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档