shell编程01【执行方式】

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


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

shell脚本

一、第一个shell脚本

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

image.png

保存文件,创建成功

#!/bin/sh

第一行命令说明:

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

#!/bin/bash

#!/bin/sh

注意:

   在Shell中如果一行的第一个字母是#,则是注释,但是上面两个是写在第一行,所以不是脚本注释行,如果写在某个命令之后,则变成注释行。

   sh为bash的软链接,大多数情况下,脚本的开头使用“#!/bin/bash”和“#!/bin/sh”是没有区别的,但更规范的写法是在脚本的开头使用“#!/bin/bash”。

二、执行的方式

image.png

1. './'方式来执行

 执行此脚本 s2.sh:

#!/bin/bash
name1=bobo1
echo "hello shell"

image.png

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

[root@hadoop-node01 shellScript]# ./s2.sh
-bash: ./s2.sh: 权限不够

 执行授权操作

chmod -u+x s2.sh
chmod 777  s2.sh

 执行效果

image.png

2.bash来执行

 执行此脚本 s3.sh:

#!/bin/bash
name2=bobo2
echo "hello shell"

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

image.png

注意

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

image.png

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

3.source或者小数点来执行

 执行此脚本 s4.sh:

#!/bin/bash
name3=bobo3
echo "hello shell"

 执行命令效果如下:

image.png

注意

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

image.png

总结

 直接执行与用source命令执行的区别,前者只作用于子进程本身,后者则作用于整个父进程。因此:如要想不注销系统,并让全局配置文件生效,则必须用source命令:

 比如说: 在全局配置文件中/etc/profile添加了JAVA_HOME,要让他对整个环境生效

export JAVA_HOME=/usr/java/jdk1.8

就必须执行 source /etc/profile


相关文章
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
26天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
Shell
Shell编程(下)
Shell编程(下)
92 1
|
1月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
41 1
|
1月前
|
Shell Linux 开发工具
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
69 12
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
45 12
|
2月前
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
52 5