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 $3

echo "参数个数$#"

Shell 控制流语句

if 判断
a=30
b=20
if [ $a -gt $b ];then
    echo "更大"
fi

if [ $a -gt $b ];then
    echo "更大"
else
    echo "更小"
fi
for 循环
for num in 1 2 3 4;do
    echo "this number is: $num"
done

for file in $(ls) ;do  #遍历文件
    echo "file is: $file"
done
while 循环
num=1
while (($num<5));do
    echo $num
    let "num++"
done
case 分支
echo '输入1到4的数字'
echo '你输入的数字为'

read aNum
case $aNum in
    1) echo "你选择了1"
    ;;
    2) echo '你选择了2'
    ;;
    3) echo '你选择了3'
    ;;
    4) echo '你选择了4'
    ;;
    *) echo '输入错误'
    ;;
esac
function 函数
function compare(){
    if [ $1 -gt $2 ];then
        echo "更大"
    else
        echo "更小"
    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  #错误的信息和正确的信息都输出到文件中 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值