首页 > 系统相关 >Shell脚本编程

Shell脚本编程

时间:2023-11-14 18:12:20浏览次数:37  
标签:脚本 解释器 Shell 编程 命令 变量名 执行

一、Shell脚本执行的几种方式

1.Shell脚本中用#表示注释,相当于C语言中的//注释,但如何#位于第一行开头,并且是#!(称为Shebang)则例外,它表示该脚本使用后面指定的解释器/bin/sh解释执行,如果把这个脚本文件加上可执行权限然后执行:

保存执行后:

上述脚本直接以./test.sh执行,执行后会启动一个子进程,使用解释器解析脚本中的每一句命令,使用哪个解释器就在脚本的第一句指定,如:#!/bin/bash

2.如果要执行的是一个文本文件,并且第一行用Shebang指定了解释器,则用解释器程序的代码段替换当前进程,并且从解释器的_start开始执行,而这个文本文件被当作命令行参数传给解释器,因此,执行上述脚本相当于执行程序:

以这种方式执行不需要test.sh文件具有可执行权限,但是需要可读权限。

3.如果将命令行下输入的命令用()括号括起来,那么也会fork出一个子Shell执行小括号中的命令,一行中可以输入由分号;隔开多个命令,比如:

4.source或者.命令是Shell的内建命令,这种方式也不会创建子shell,而是直接在交互式Shell下逐行执行脚本中的命令

或者

二、变量的使用

1.变量的命名

按照惯例,Shell变量同城由字母加下划线开头,由任意长度的字母、数字、下划线组成。

在Shell中定义或赋值一个变量

注意等号两边都不能有空格,否则会被Shell解释成命令和命令行参数,变量的使用,用$符号跟上变量名表示对某个变量取值,变量名可以加上花括号来表示变量名的范围。使用花括号来分离value和_World,不至于把value_World当作变量名。

 

标签:脚本,解释器,Shell,编程,命令,变量名,执行
From: https://www.cnblogs.com/TechNomad/p/17832227.html

相关文章

  • 常用的脚本语言简介
    常用的脚本语言有以下几种:1.Python:Python是一种通用的高级编程语言,具有简洁、易读和强大的特点。它被广泛用于数据分析、机器学习、Web开发、自动化脚本等领域。2.Bash:Bash是一种UnixShell脚本语言,主要用于在Linux和Unix系统中编写和执行命令行脚本。它提供了许多用于文件操......
  • 替换文件中字符串的脚本
    #打开文件并读取内容withopen('/etc/network/interfaces.d/eth0','r')asfile:file_content=file.read()#将所有的字符串192.168.1.91替换为192.168.5.91new_content=file_content.replace('192.168.1.91','192.168.5.91')#写入替换后的内容......
  • linux锁定脚本防止脚本重复运行
    问题描述:设置在定时任务中的脚本一定要注意防止脚本重复执行,要不然会带来一些想象不到的结果。 方式一:使用锁定文件的方式来进行防止脚本重复运行,类似数据库socket文件,但是这种情况有一种弊端就是,如果脚本因为某些原因退出,但是lock文件没有被清理掉,就会导致下一次的脚本运行失......
  • shell编程-循环结构
    shell循环-for语句foriin{取值范围}#for是关键字i是变量名in是关键字do#循环体的开始循环体done#循环体的结束实战1:[root@linux-serverscript]#vimfor.sh#!/usr/bin/envbash##Author:#Date:2019/**/**fo......
  • 不务正业的再次胡想——chatgpt在“智能辅助编程”外的另一个可能场景"智能论文写作辅
    在chatgpt4出来后震惊了很多人,但是很多人也觉得好像用处不大;可以说chatgpt4确实更加智能了,在语言对话上更加的智能,很多情况下已经很难分辨出这货是个机器人,但是现在这东西好像确实也没有太多的实际应用,或许更多的人用这个是当做“智能搜索引擎”来用的,而我个人却更加喜欢将chatgpt......
  • 049-第三代软件开发-软件部署脚本(一)
    第三代软件开发-软件部署脚本(一)文章目录第三代软件开发-软件部署脚本(一)项目介绍软件部署脚本(一)其他方式关键字:Qt、Qml、bash、shell、脚本项目介绍欢迎来到我们的QML&C++项目!这个项目结合了QML(QtMeta-ObjectLanguage)和C++的强大功能,旨在开发出色的用户界面......
  • 学无止境--linux串口编程(RS485)
    备注:学习记录所用,若有高手不吝赐教,万分感谢!一、概括  linux将串口都映射成了TTY终端,所以在串口编程时,找到并使能平台的TTY,然后操作TTY终端即可。  例如对于Nuclei平台的轩辕91030M芯片设备树: uart0:serial@10013000{ compatible="sifive,uart0"; reg=<0x00x100......
  • 使用 powershell 安装 openssh
    1. 若要使用PowerShell安装OpenSSH,请先以管理员身份运行PowerShell(win+x快捷键进行打开)。为了确保OpenSSH可用,请运行以下cmdlet:Get-WindowsCapability-Online|Where-ObjectName-like'OpenSSH*'  2. 如果两者均尚未安装,则此操作应返回以下输出:Name:Op......
  • Android并发编程高级面试题汇总(含详细解析 三)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • 查询mysql数据量,表数量脚本
    #查询数据库中每个库的数据量SELECTtable_schemaAS"Database",SUM(data_length+index_length)/1024/1024AS"Size(MB)"FROMinformation_schema.TABLESGROUPBYtable_schema;#查询数据库中每个库的表数据量SELECTTABLE_SCHEMA,COUNT(*)FROMinformation......