当前位置: 首页 > news >正文

Shell入门

Shell是什么

  • Shell是一个命令行解释器,负责接收用户输入的命令,然后调用Linux内核去执行这些命令,再把执行结果返回给用户,Shell解释器有很多类(csh、ksh、bash、zsh),比如windows上也有powerShell,不同的Shell有些许差异,Linux中默认安装的是Bash
  • shell也支持条件判断、分支、定义函数、变量等功能
  • shell脚本的扩展名一般以 .sh结尾,但没有强制要求

应用

  • 针对批量的数据文件进行数据的转换、操作、生成报告
  • 针对项目环境进行初始化
  • 执行定时任务,对系统的状态进行定时检查
cat /etc/shells 查看支持哪些shell
# /etc/shells: valid login shells
/bin/sh             直接执行这些脚本就可以切换shell解释器
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
echo $SHELL   查看环境变量 看使用的哪个shell
/bin/bash

Shell变量

#! /bin/bash  声明使用的解释器
var1=1
var2="is a string"
var3=(1 2 3 4) #定义数组
echo $var1
echo $var2
echo ${var3[0]} #打印某个元素
echo ${var3[@]} #打印数组的所有变量file=$(ls)  #将执行命令的返回值变为一个变量
echo ${file[@]} echo $0   #脚本名
echo $1   #传的第一个参数
echo $2
echo $3echo "参数个数$#"

Shell 控制流语句

if 判断
a=30
b=20
if [ $a -gt $b ];thenecho "更大"
fiif [ $a -gt $b ];thenecho "更大"
elseecho "更小"
fi
for 循环
for num in 1 2 3 4;doecho "this number is: $num"
donefor file in $(ls) ;do  #遍历文件echo "file is: $file"
done
while 循环
num=1
while (($num<5));doecho $numlet "num++"
done
case 分支
echo '输入1到4的数字'
echo '你输入的数字为'read aNum
case $aNum in1) echo "你选择了1";;2) echo '你选择了2';;3) echo '你选择了3';;4) echo '你选择了4';;*) echo '输入错误';;
esac
function 函数
function compare(){if [ $1 -gt $2 ];thenecho "更大"elseecho "更小"fi
}compare 3 2

Shell重定向

将原有终端中输入和输出的地方定向到其他的地方
在Linux中,所有进程的都默认有3各文件描述符,0 标准输入 1标准输出 2标准错误输出

如果想执行bash脚本得到的结果输出到一个文件里,就可以使用到:

bash test.sh >file.txt  # 输出的内容直接覆盖到file文件中
bash test.sh >>file.txt  #追加的形式输出到file文件中
bash test.sh 2>>error.log  #错误输出到文件中
bash test.sh >>file 2>&1  #错误的信息和正确的信息都输出到文件中 

http://www.mrgr.cn/news/23992.html

相关文章:

  • 二叉树详解
  • MFC之CString类及其成员函数用法详解
  • 【表达式求值】
  • langgraph tool如何发送自定义事件
  • Leetcode - 周赛414
  • 帧缓冲 framebuffer
  • Pytorch维度转换操作:view,reshape,permute,flatten函数详解
  • ZAB协议(算法)
  • 精选干货!分享5款免费论文生成软件
  • 【Solidity】类型
  • Vue--》视觉盛宴:提升可视化大屏分辨率适配的技巧
  • AV1 Bitstream Decoding Process Specification:约定
  • Tableau安装和使用
  • MIT6.824 课程-PrimaryBackupReplication
  • leetcode 146.LRU缓存
  • 跨国公司研发战略调整与中国IT产业的未来
  • 动态规划-分割回文串ⅡⅣ
  • C++学习笔记(16)
  • 工具知识 | Linux 常用命令参考手册
  • 在windows下抓空包(monitor网卡+wareshark+MNM)