shell脚本脚本变量

news2024/11/23 21:21:07
shell脚本的概念:

1.讲要执行的命令按顺序保存到一个文本文件

2.给文件可执行权限

3.可以结合各种shell控制语句以完成更复杂的操作

linux中包含shell的文件有

[root@localhost ~]# cat /etc/shells
/bin/sh            #UNIX最初使用的 shell,已经被bash所替换。
/bin/bash            #基准于GNU的框架下发展出的Shell,是 sh 的扩展
/usr/bin/sh            
/usr/bin/bash
/bin/tcsh            #整合了csh,提供更多的功能
/bin/csh            #语法有点类似于c语言的Shell
    

注意:nologin是一个奇怪的shell 这个shell可以让用户无法登录

shell格式:

使用vim编译创建xxx以.sh为结尾

脚本的第一行声明脚本解释器用#!

第二行可以用”#“来写入注释信息

后面执行代码依次排序

执行脚本shell:

chmod 给这个文件权限         也可以用bash+文件即可运行        #bash可以有无执行权限

用chmod的这个 要用绝对路径或者相对路径来运行        #要有执行权限

以上两种脚本都是在子shell环境中执行脚本

siure或”.“指定脚本文件运行        #可无执行权限

编译型代码语言:c        c++         java        go都是编译型语言 代码文件需要先进行编译才能执行

解释性语言:shell        python        代码是边解释边运行

交互式硬件设备

标准输入:从该设备接收用户输入的数据

标准输出::通过设备向用户输出数据

标准错误:通过该设备报告执行出错信息

重定向操作

变量:

变量名以字母或者下划线开头

代码:变量=变量值

查看变量值:echo ¥变量

read -p (”提示内容“)变量名

赋值时使用引号:

双引号:允许通过¥符号引用其他变量值

单引号 :会把¥看作为一个普通字符,不会引用变量的值

反撇号:命令替换提取命令结构

设置变量的作用范围

格式:1.export 变量名

让自定义的变量在所有shell环境中有效的方法:

1.在/etc/bashre 文件中 定义变量名=变量值

2.在        /etc/profile 文件中定义        export 变量名=变量值        并source /etc/profile 立即生效

整数运算

let a=10 +5 

let a++         相当于        a=$[a+1]

let a--               相当于        a=$[a-10]

let a+2=        相当于        a=$[a+2]

浮点数运算

echo ‘4.5+2.1’  | bc

awk “BEGIN[PRINT 4.5+2.1]'

环境变量:

env        #查看当前shell环境中可用的环境变量

PATH USER PWD HOMS LANG HTSTSIZE        定义在/etc/profile 中针对于所有用户

家目录~/.base_profile

只读变量

readonly 变量名=变量值

位置变量:

./rest.sh        one        tow        three        .......        the

                        $1        $2        $3                                $10

当数字超过10的时候输出显示就变成noe1了 所以我们要添加大括号

预定变量:

$0        表示脚本本身

$#        代表脚本后面跟的位置参数的数量

$?        表示时上一条Linux命令执行的返回状态码(0-255) 0表示上一条命令执行正确  非0时则为异常

$*        默认代表篇脚本后跟所有参数 加上双引号后“$*”会把所有参数看作一个整体

$@        默认代表篇脚本后跟所有参数 加上双引号后“$*”会把所有参数看作一个体

date

%y        表示年

%m       表示月

%d        表示日

date -d “1 day” + “%y%m%d”        表示昨天日期

date +“%y%m01"        表示当月第一天

date -d "1 month" +"%Y%m01"   下个月第一天
date -d "$(date -d "1 month" +"%Y%m01") -1 day" +"%Y%m%d"       当月最后一天  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1649498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

流量暴涨!抖音+快手+小红书获客攻略!

在数字营销的海洋中,抖音、快手和小红书无疑是三座巨大的灯塔,照亮了品牌和个人获取流量的道路。这些平台不仅拥有庞大的用户基础,而且其独特的算法和社交特性让获客变得更加高效而精准。接下来,让我们深入探讨如何通过这三个平台…

鸿蒙OpenHarmony【基于Hi3516DV300开发板(时钟应用开发)】

概述 本文将介绍如何快速搭建基于OpenHarmony标准系统(Hi3516DV300开发板)的应用开发环境,并基于一个时钟APP示例逐步展示应用的创建、开发、调试和安装等流程。示例代码可以通过本链接获取。 时钟App是一款显示实时时间的应用,…

WouoUIPagePC端实现

WouoUIPagePC端实现 WouoUIPage是一个与硬件平台无关,纯C语言的UI库(目前只能应用于128*64的单色OLED屏幕上,后期会改进,支持更多尺寸)。因此,我们可以在PC上实现它,本文就以在PC上使用 VScode…

124.反转链表(力扣)

题目描述 代码解决(思路1:双指针) class Solution { public:ListNode* reverseList(ListNode* head) {ListNode*temp;//保存cur下一个节点ListNode*curhead;ListNode*preNULL;while(cur){tempcur->next;// 保存一下 cur的下一个节点&#…

新的循环体和define

目录 do while讲解 练习: 结果: 分析: 定义:宏(define) 练习: 结果: 分析: define的优缺点 优点: 缺点: 作业: 大家假期…

Git命令Gitee注册idea操作git超详细

文章目录 概述相关概念下载和安装常见命令远程仓库介绍与码云注册创建介绍码云注册远程仓库操作关联拉取推送克隆 在idea中使用git集成add和commit差异化比较&查看提交记录版本回退及撤销与远程仓库关联 push从远程仓库上拉取,克隆项目到本地创建分支切换分支将…

使用wxPython和pandas模块生成Excel文件

介绍: 在Python编程中,有时我们需要根据特定的数据生成Excel文件。本文将介绍如何使用wxPython和pandas模块来实现这个目标。我们将创建一个简单的GUI应用程序,允许用户选择输出文件夹和输入的Excel文件,并根据Excel文件中每个单…

代码随想录算法训练营第十八天:二叉树的层序遍历(中间放假)

代码随想录算法训练营第十八天:二叉树的层序遍历(中间放假) ‍ ​​ 102.二叉树的层序遍历 力扣题目链接(opens new window) 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右…

算法提高之能量项链

算法提高之能量项链 核心思想&#xff1a;区间dp 通过观察发现可以将n个珠子最后的n1个数看作石子 合并石子 在l~r的范围内 找k作隔断 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 110,M N<<…

【PCB字符批量修改】- PCB板工艺及AD软件配置

软件版本 选择丝印-单机右键&#xff0c;选择find similar objects 第二步单机Apply 第三步选择OK 第四步在Panels中选择Properties里面修改Text Height和Stroke Width 到此搞定&#xff01;

数据结构——链表(精简易懂版)

文章目录 链表概述链表的实现链表的节点&#xff08;单个积木&#xff09;链表的构建直接构建尾插法构建头插法构建 链表的插入 总结 链表概述 1&#xff0c;链表&#xff08;Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储一系列元素。它由一系列节点&…

python实现的信号合成分析系统(DSP)

python实现的信号合成分析系统(DSP) 流程 1、在QT界面上设置好信号频率,采样频率,采样点数 2、使用np构建sin函数 3、使用matplotlib画出 4、分别分析合成信号的FFT频域信息1、效果图 2、示例代码 def btn_com_clicked(self):# 信号合成分析Fs = self.com_fs_edit_value #…

【嵌入式DIY实例】-基于GSM的远程灌溉系统

基于GSM的远程灌溉系统 文章目录 基于GSM的远程灌溉系统1、硬件准备与接线2、软件准备3、代码实现本文将详细介绍如何搭建通过使用手机实现对灌溉系统的远程控制。该系统利用全球移动通信系统(GSM)技术在灌溉系统和移动电话之间建立通信。该系统建立在流行的开源微控制器平台…

重庆大足某厂不锈钢管件酸洗钝化-智渍洁

简报&#xff1a;重庆大足某厂不锈钢管件酸洗钝化 重庆大足某厂不锈钢管件酸洗钝化 - 重庆智渍洁环保科技有限公司简报&#xff1a;重庆大足某厂不锈钢管件酸洗钝化https://www.zhizijie.com/hl/zixun/gongsi/237.html

【Linux网络】网络文件共享

目录 一、存储类型 二、FTP文件传输协议 2.1 FTP工作原理 2.2 FTP用户类型 2.3 FTP软件使用 2.3.1 服务端软件vsftpd 2.3.2 客户端软件ftp 2.4 FTP的应用 2.4.1 修改端口号 2.4.2 匿名用户的权限 2.4.3 传输速率 三、NFS 3.1 工作原理 3.2 NFS软件介绍 3.3 NFS配…

企业加密软件有哪些:企业加密软件排行榜|常用分享汇集

在当前的数字化时代&#xff0c;数据的安全性成为了企业运营中至关重要的一环。因此&#xff0c;企业加密软件的需求也日益增长。在这个竞争激烈的市场中&#xff0c;各大加密软件厂商纷纷推出自己的产品&#xff0c;以满足企业的不同需求。 首先是Ping32加密软件。Ping32文件加…

Flutter实战记录-协作开发遇到的问题

一.前言 Android项目使用了混合架构&#xff0c;部分模块使用Flutter进行开发。在电脑A上开发的项目提交到git仓库&#xff0c;电脑B拉取后进行操作&#xff0c;遇到两个问题&#xff0c;特此做一下记录&#xff1b; 二.问题A Settings file ‘D:\xxx\settings.gradle’ line…

Linux初识

1.操作系统的那点事 &#xff08;1&#xff09;结论&#xff1a;操作系统是作软硬件管理的软件&#xff1b; &#xff08;2&#xff09;计算机是操作系统&#xff0c;设备驱动&#xff0c;硬件三个相互结合发挥作用的&#xff0c;操作系统是用来管理硬件的&#xff0c;常见的…

PMBOK第七版,通往项目管理的新地图|分析2024软考光环PMP第六版培训课程

目录 文明福利 历次升级分析 2PMBOK第七版解读 1、和第六版保持一致&#xff1a;由知识体系指南和项目管理标准2部分构成。 2、区别于第六版的结构性颠覆&#xff1a;12原则、8大绩效域取代5大过程组、10大知识领域。 3PMBOK第七版VS第六版 4PMBOK第七版 就是带领我们寻找…

RabbitMQ是如何保证消息可靠性的?——Java全栈知识(16)

RabbitMQ 的消息不可靠也就是 RabbitMQ 消息丢失只会发生在以下几个方面&#xff1a; 生产者发送消息到 MQ 或者 Exchange 过程中丢失。Exchange 中的消息发送到 MQ 中丢失。消息在 MQ 或者 Exchange 中服务器宕机导致消息丢失。消息被消费者消费的过程中丢失。 大致就分为生…