小白篇--shell脚本基本操作

本文详细介绍了Shell脚本的基础知识,包括如何添加执行权限、条件语句的正确格式、字符串和数字的比较、文件操作以及Python脚本调用。通过实例展示了读取文本文件、字符串截取和生成、错误处理等实用技巧,并提供了处理大量文件时避免错误的方法。此外,还提到了Windows与Unix换行符的区别以及推荐的编辑器设置。
摘要由CSDN通过智能技术生成

新建&运行

shell脚本 test.sh 第一行添加:

#!/bin/bash

然后就可以在shell窗口中:

sh test.sh
bash test.sh

[ [ 格 式 ] ]

关于空格、回车

任 何 地 方不 要 随 意 添 加 空 格 、回 车 !
文档结尾不要windows回车符\r
==附近不要有空格

条件语句标准(注意空格):

if [ $check=="string" ] # 比较字符串
if [ $num -eq 2 ]       # 比较数值

此外注意所使用的编辑器、系统:

windows下回车,会加入\r
推荐使用MobaXterm自带编辑器,然后选择 Format > UnixFormat

读入文本

#!/bin/bash
for line in `cat ./tmp/__par__.txt`
do 
  name=$line
  echo $name
  name=${name%%.*}.json
  echo $name
  python voc2coco.py $line '' $name
done

截取、生成字符串

%% *:从右侧第一个 . 出现开始,截取其左侧所有值

name=${name%%.*}

% *:从左侧第一个 . 出现开始,截取其左侧所有值

name=${name%.*}

从第4个字符开始(不包括第4个),截取右侧3个字符

name=${name:4:3}

从第4个字符开始,截取右侧所有

name=${name:4}

从倒数第4个字符开始,截取右侧所有

name=${name:0-4:}

给字符串添加 .json

name=${name}.json

判断

数字判断一些命令
-gt是大于的意思
-lt是小于
-eq是等于
-ne是不等于
-ge是大于等于
-le是小于等于

#!/bin/bash
if [ $1 -gt $2 ]
then echo "$1>$2"
else echo "$2>$1"
fi

字符串判断

if [ $1=="happ!" ]
then echo "$1>$2"
else echo "$2>$1"
fi

退出

if [ 1 ] ; then
exit
fi

Python传参

test.py

import sys
if __name__=="__main__":
	sys.exit(1)

test.sh

python test.py
t=$?
if [ $t -eq 1 ]; then
echo $t
fi

批量复制

如下命令批量复制时,如果文件数量过多,会报错——列表太长:

cp ./A/* ./B/

改用如下命令:

cp -r ./A/. ./B/

用该命令合并两个目录A、B下的内容到目录C下:

cp -r ./A/. ./C/
cp -r ./B/. ./C/

计数

$#:输入bash脚本的参数数量
${#list}:list计数

复制

显示详细信息

cp -v src dst
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值