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

Shell脚本编程基础

时间:2024-03-27 10:00:12浏览次数:22  
标签:脚本 Shell 变量 自定义 编程 echo root bash

Shell的作用 —— 命令解释器

Bash 是一个用于GNU操作系统的shell,也就是命令解释器,这个名字是Borune-Again SHell的缩写.

重定向

重定向输入<从指定的文件读取数据,而不是从键盘输入 
重定向输出>将输出结果保存到指定的文件(覆盖原有内容)
>>将输出结果追加到指定的文件 
标准错误输出2>将错误信息保存到指定的文件(覆盖原有内容)
2>>将错误信息追加到指定的文件中
混合输出&>将标准输出、标准错误的内容保存到同一个文件中

管道操作符号”|”

将左侧的命令输出结果,作为右侧命令的处理对象

[root@localhost ~]# grep "bash$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
teacher:x:500:500:BENET Linux Teacher:/home/teacher:/bin/bash
[root@localhost ~]# grep “bash$” /etc/passwd | awk  -F:  ‘{print $1,$7}’ 
root  /bin/bash
teacher  /bin/bash

Shell变量

系统变量(位置变量,预定义变量)

# Shell常见的变量之一系统变量,主要是用于对参数判断和命令返回值判断时使用,系统变量详解如下:

$0 		当前脚本的名称;
$n 		当前脚本的第n个参数,n=1,2,…9;
$* 		当前脚本的所有参数(不包括程序本身);
$# 		当前脚本的参数个数(不包括程序本身);
$? 		令或程序执行完后的状态,返回0表示执行成功;
$$ 		程序本身的PID号。

环境变量

#Shell常见的变量之二环境变量,主要是在程序运行时需要设置,环境变量详解如下:

PATH  		命令所示路径,以冒号为分割;
HOME  		打印用户家目录;
SHELL 		显示当前Shell类型;
USER  		打印当前用户名;
ID    		打印当前用户id信息;
PWD   		显示当前所在路径;
TERM  		打印当前终端类型;
HOSTNAME    显示当前主机名;
PS1         定义主机命令提示符的;
HISTSIZE    历史命令大小,可通过 HISTTIMEFORMAT 变量设置命令执行时间;
RANDOM      随机生成一个 0 至 32767 的整数;
HOSTNAME    主机名

用户变量(自定义变量)

# 常见的变量之三用户变量,用户变量又称为局部变量,主要用在Shell脚本内部或者临时局部使用,系统变量详解如下:
a=rivers 				       自定义变量A;
Httpd_sort=httpd-2.4.6-97.tar  自定义变量N_SOFT;
BACK_DIR=/data/backup/         自定义变量BACK_DIR;
IPaddress=10.0.0.1			   自定义变量IP1;

赋值时使用的引号

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

单引号:禁止引用其他变量值,$视为普通字符

反撇号:命令替换,提取命令执行后的输出结果

整数变量的运算

expr   变量1   运算符  变量2  [运算符 变量3]  ...

常用运算符

加法运算:+

减法运算: -

乘法运算: \*

除法运算: /

求模(取余)运算: %

案例welcome.sh

1.编写welcome.sh

#!/bin/bash

echo "Welcome!"
echo  "My hostname is ${BEGINCOLOR}`hostname`$ENDCOLOR"
echo  "IP address is ${BEGINCOLOR} `ifconfig ens160 |grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'|head -n1 ` $ENDCOLOR"
echo  "OS version is ${BEGINCOLOR} `cat /etc/redhat-release ` $ENDCOLOR"
echo  "CPU type is ${BEGINCOLOR}`lscpu|grep "Model name" |cut -d: -f2|tr -s " " `$ENDCOLOR"
echo  "Kernel version is ${BEGINCOLOR} `uname -r ` $ENDCOLOR"
echo  "Time is `date '+%Y%m%d %H:%M:%S'`"

2.运行 

[root@hfj ~]# . /root/welcome.sh 

标签:脚本,Shell,变量,自定义,编程,echo,root,bash
From: https://blog.csdn.net/weixin_55731208/article/details/137032471

相关文章

  • Spark 编程
     1、数据准备people.json{"id":1,"name":"张三","age":38}{"id":2,"name":"李四","age":30}{"id":3,"name":"王五","age":28......
  • Python-VBA编程500例-020-02(入门级)
    第k个组合(ThekthCombination)的问题在实际应用中具有广泛的用途,它涉及从n个不同元素中选出k个元素的所有可能组合。这种组合的概念在许多领域都有重要的应用,常见的一些具体应用有:1、彩票与赌博:在某些彩票或赌博游戏中,参与者需要选择特定数量的号码或符号。这些号码或符号的......
  • 【蓝桥杯选拔赛真题48】C++九进制回文数 第十四届蓝桥杯青少年创意编程大赛 算法思维
    目录C++九进制回文数一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、推荐资料C++九进制回文数第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题一、题目要求1、编程实现提示信息:回文数:反向排列与原......
  • linux创建定时脚本
    1.我的项目定期生成的log日志很大,需要手动执行此方法才能清空日志cat/dev/null>/usr/local/server/pingvps/pingvps.out2.我想把此命令做成脚本,创建clear.sh文件,并且授权最高权限,内容如下#!/bin/bashsh-c'cat/dev/null>/usr/local/server/marryserver/log.out'......
  • FDS编程练习 · 其一
    日常练手用,熟悉一下几种结构的代码实现。1.通过给定中序遍历和后序遍历的数列重建二叉树#include<stdio.h>#include<stdlib.h>typedefstructNode*Tree;structNode{ intdata; Treeleft,right;};/*定义树*/TreebuildTree(intinorder[],intpostorder[]......
  • Rat cat9忘记root密码,使用Shell修改root密码
    打开虚拟机按e进入GRUB编辑模式将rhgbquiet用init=/bin/sh 替换按CTRL+X启动系统出现bash-5.1输入命令(1)执行以下命令以可写方式重新挂载根目录:mount-oremount,rw/(2)执行以下命令修改root密码:passwdroot(3)如果系统启动了SELinux,必须执行以下命令,否则将......
  • Nginx服务器状态监控与自动重启Shell脚本
    脚本代码:#!/bin/bash#Nginx服务器状态监控与自动重启脚本#版本:1.0#作者:XXX#日期:XXXX-XX-XX#定义Nginx进程文件路径NGINX_PID=/var/run/nginx.pid#定义Nginx日志路径NGINX_ERROR_LOG=/var/log/nginx/error.log#定义Nginx可执行文件路径NGINX_BIN=/usr/......
  • 就业班 第二阶段 2401--3.26 day6 Shell初识 连接vscode
    远程连接vs_code可能出现的问题C:\Users\41703\.ssh验证远程主机的身份,如果连不上vscode,可以尝试删除这里面的公钥代码。重新安装那个扩展,排除扩展本身的问题谁连过我,并操作了什么curlhttps://gitea.beyourself.org.cn/newrain001/shell-project/raw/branch/master......
  • 编程语言
    【三】编程语言【1】分类【2】机器语言计算机可以理解的语言可以操作计算机的系统硬件机器指令:通过控制高低电频变化组成指令去操作系统记住计算机全部指令及核心代码的含义厂家调控硬件设备时用0000代表load0001代表STORE...优点:执行效率高缺点:开发效率......
  • AOP切面试编程
    1.AOP基础1.1AOP概述什么是AOP?AOP英文全称:AspectOrientedProgramming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是面向特定方法编程。AOP面向方法编程,可以做到在不改动这些原始方法的基础上,针对特定的方法进行功能的增强。AOP的作用:在程序运行期间在不......