home archives github knives links
tags linux shell
categories
only title title and content
shell脚本笔记

传参

zsh ./fuck.sh $1 $2 $3 ...

赋值

if

示例:

if [ "${message}"x = x ]
then
echo "equal"
elif [ "${message}"x = "shitx" ] || [ "${message}"x = "SHIT" ]
then
echo "shit"
else
echo "fuck"
fi

for

处理特定前缀的文件

for img in `ls`
do
if [[ $img == _* ]]
then
output=${img#_}
# echo ${output}
ffmpeg -i ${img} -vf "scale=iw/5:ih/5" ${output} -y
fi
done

while

一个修改缩进的脚本

line_num=$(wc -l $1)
echo ${line_num}
i=0
while [ ${line_num:${i}:1} != " " ]
do
((i++))# 寻找空格
done
line_num=${line_num:0:${i}}
echo ${line_num}
version=$(uname)
if [ "${version}" = "Linux" ]
then
sed -i 's/\t/ /g' $1
sed -i 's/ / /g' $1
elif [ "${version}" = "Darwin" ]
then
sed -i '' 's/<C-v><tab>/ /g' $1 #这个地方指按下ctrl+v,然后再按一下tab,输出tab字符
sed -i '' 's/ / /g' $1
fi

字符串处理

cnblogs

sed

mac(FreeBSD)

示例

sed -i '' -e '4a\
'${message} ${filename}

sed -i '' -e '4a\
shit' ${filename}

linux

sed -i '4a\shit' ${filename}

sed -i '4a\'${message} ${filename}

参数

计算字符长度

${#string}

sleep

read

数组

sh=()
sh+=(1)
sh+=(2)
for i in $sh
do
echo $i
done