`

Shell学习(1)一个简单的Shell

阅读更多

示例代码:

#! /bin/bash
# This is a simple test shell program.
function show_name(){
    echo "Today is $1 , your name is $2 , come from $3"
}
name="$1"
ip="169.18.2.5"
today=`date +%F`

if [ $# !=1 ] ; then
	echo "Usage:. /$0[the user name]"
	exit
fi

show_name "$today" "$name" "$ip"

sleep 5
echo 
echo "Bye-Bye;-)"

 

检查脚本的语法
bash -v test.sh YourName
不执行,仅查看脚本代码
bash -n test.sh
跟踪脚本执行(这个比较有用)
bash -x test.sh YourName

 

Bash 执行的原理

 

父Shell:

登录主机后,在执行Bash Script之前,其实,我们所处的环境已经是在一个Bash Shell 了。这个Shell叫做login Shell ,是将来我们执行任何Script的上层环境,又叫做父Shell。

 

父Shell 和 子Shell:

前面已经说的在执行Shell Script之前,我们已经处在一个login Shell 中,称为父Shell。当我们执行一个Shell script时,父Shell会根据Script程序的第一行#!之后所指定的Shell程序开启(此操作称作fork)一个子Shell的环境,然后,在子Shell中执行此Shell Script。一旦子shell 执行完毕,此子Shell随即结束,任然回到父Shell中。不会影响f父Shell的执行。

示例程序:

# /bin/bash

#change folder and new a file .

# to see the rationship between parent shell and child shell

cd /var/tmp

touch testShell.txt

 该程序切换到/var/tmp目录下,为了证实该动作的发生在该目录下创建一个txt文件

./cd.sh

 结果:执行完后控制台还在当前的工作目录下,查看/var/tmp目录发现有testShell.txt的生成。

.     cd.sh        注意:.和cd.sh之间有空格

 或

source  cd.sh

 

结果:执行完后控制台的当前目录切换到了/var/tmp下,并在该目录下生成了testShell.txt文件

 

 结论:使用.  和source,会让Script只在父Shell的环境下执行,因此,得以切换到/var/tmp下。换而言之,这种方式执行Script,会影响到父Shell的环境。通常自私做系统人、调校时才会用到

 

分享到:
评论

相关推荐

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    shell学习,第一章

    Shell学习第一章主要涵盖了Shell脚本语言的基础知识,包括Shell的介绍、基本语法、变量和字符串操作等内容。以下是对这些知识点的详细阐述: 1. **Shell介绍**:Shell是一种命令行解释器,它允许用户与操作系统进行...

    linux shell学习资料

    这本书可能会包含大量的实例,覆盖了系统管理、文件操作、网络通信等多个领域,使你在实践中学习和掌握Shell脚本编写技巧。 《Linux Shell从入门到精通》则是一本适合初学者的基础教程,它会从最基础的Shell概念讲...

    SHELL基础学习指导

    Shell不只是一个简单的命令解释器,它自身具备一套完整的命令集,允许用户在提示符下进行操作。Shell还有编程的能力,它可以通过脚本语言来执行更加复杂的任务。 Linux系统中有多种Shell可供选择,但是通常默认使用...

    shell学习资料01

    shell学习01

    实用的shell学习资料

    **实用的Shell学习资料概述** Shell是Linux和Unix操作系统中的一种命令解释器,它作为用户与操作系统之间交互的界面,允许用户输入命令并执行。在众多的Shell中,Bash(Bourne Again SHell)是最流行的一个,广泛...

    Linux教程+ shell学习笔记 + Shell脚本常用命令+shell脚本100例资源合集

    本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    shell脚本学习手册

    - 创建一个简单的脚本并指定解释器(例如 `#!/bin/bash` 或 `#!/bin/sh`),例如: ```bash #!/bin/sh echo "Hello World" ``` - 运行方式有两种: - 作为可执行程序:保存为`.sh`文件,赋予执行权限并通过...

    shell脚本学习指南

    2. **脚本结构**:一个基本的Shell脚本通常包含以下部分:Shebang(#!/bin/bash),用于指定解释器;变量声明;命令及逻辑结构。 3. **执行脚本**:要运行Shell脚本,需赋予脚本执行权限(`chmod +x scriptname.sh`...

    一个简单的shell

    在本课程设计中,我们旨在实现一个简单的Shell,这个Shell虽然功能有限,但可以提供基本的命令执行、环境变量设置以及流程控制等功能,为学习和理解Shell的工作原理提供了很好的实践平台。 **核心组件** 1. **命令...

    Shell脚本学习指https://pan.baidu.com/s/1sPfOlmfcq1PmzOkD0ZnsyA

    Shell脚本是Linux和Unix操作系统中的一个强大工具,它允许用户通过编写命令行指令序列来自动化日常任务。这个“Shell脚本学习指南”资源显然旨在帮助初学者和进阶者更好地理解和掌握这一核心技术。 首先,我们需要...

    shell学习经典资料

    以下是对标题“shell学习经典资料”及相关文件的详细解析: 首先,我们看到标题提及了“shell学习”,这指的是对shell编程的学习。Shell编程是一种使用命令行界面编写脚本的技能,它允许用户通过编写简单的或复杂的...

    shell编程学习资料

    2. **命令行界面**:Shell提供了一个命令行界面,用户可以通过键盘输入命令来执行各种操作,如创建、删除文件,查看目录内容等。 3. **命令别名**:可以为常用的命令设置别名,方便快捷地执行命令,例如`alias ll='...

    shell学习方法

    ### Shell学习方法详解 #### 一、Shell简介 在计算机科学领域中,Shell是一种非常重要的交互式编程环境,被广泛应用于各种操作系统中,包括Linux、Unix等。Shell通常被称为“壳”,用来区别于操作系统的核心部分...

    实现一个简单的shell(命令行解释器),类似于bash, csh等。

    本课程设计的目标是创建一个简单的shell程序,模仿像bash和csh这样的经典Unix shell。这个项目不仅有助于理解shell的基本功能,还能深入学习Unix/Linux系统中的进程创建和管理。 首先,我们需要了解shell的基本功能...

    linux shell脚本学习文档

    你可以定义一个函数,如`print_file() { cat $1; }`,然后在脚本中调用它来显示指定文件的内容。 脚本中还可以包含输入输出重定向,使得程序可以读取非标准输入(如文件)或写入非标准输出(如文件)。例如,`...

Global site tag (gtag.js) - Google Analytics