Linux经验记录2——shell使用

本文详细介绍了Shell脚本的基础知识及其在执行多条命令时的高效应用。涵盖了基本语法、变量赋值、控制语句如if、case、for及while循环的使用方法与注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

What(是个啥)

shell作用是解释执行用户的命令。是脚本语言,编写执行方便快捷。

Why(为啥用)

用户想执行一条命令,可以用终端,但要执行多条命令时,用shell会更加高效方便。

How(咋个用)

基本语法

  • 通常第一行加入“#!/bin/bash"指定运行解释器
  • 赋值变量,等号两边不能有空格
  • 使用’ 或 者 " 或者" "{}"来获取变量

常用方式

控制语句1
  • if,then, elif,else,fi
if [ -f $a ];then  
        echo "hello world!"  
fi  
注意事项
每一组if , then的结束都应附上一个fi与if对应
[]应当注意用空格隔开,]后紧跟;
[]内的条件与[]都有一个空格相隔。
控制语句2
  • case, esac
Shell脚本的case可以匹配字符串和Wildcard
只匹配一个分支,然后就跳出
case “$var” in
        conditionl )
                statments1;;
        conditionl )
                statment2;;* ) default statements;;
esac
注意事项

conditionl(条件) 使用 空格 与 )隔开
statement*(行为) 后使用两个 ;; 结尾

  • ) 后陈诉 除 以之前的 statements 之外的情况
    使用 esac 与 case 呼应结尾
控制语句3
  • for, do, done (for循环语句)
Shell脚本的case可以匹配字符串和Wildcard
只匹配一个分支,然后就跳出
for var in list
do 
    statement
done
var是要列举的变量,list是变量var的一个集合,do....done中的语句表示在list 中还 未被列举完 时需要执行的语句
注意事项

for后面的变量不加$,但在do...done中要使用 var变量时需要加上$
若使用()list括起来时,list中的内容将会被视为一个元素
当for后没有跟in [list]部分时,则循环控制变量将取遍命令行的所有参数

当在shell界面写脚本语句时,若for语句和do语句都写在同一行,则for语句后面需要用;


for a in $(ls /home/www/)  
do  
        if [ -f $a ]  
               iconv -f utf-8 -t gbk $a  
        fi  
done  
批量解压

for dir in test1/*

do

     if test -f $dir

     then

       brr=$(echo $dir | tr "." "\n")

       brrs=( $brr )

       fileid=${brrs[0]}

       echo $fileid

       mkdir $fileid

       tar -xvf $dir -C $fileid

    fi

done

控制语句4
  • while, do, done (while循环语句)
COUNTER=1

while [ "$COUNTER" -lt 10 ]; do 
        echo "Here we go again" 
        COUNTER=$(($COUNTER+1))
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值