if command #条件
then
command
fi
if command #条件
then
commands
else
commands
fi
if command1 #条件
then
commands
else
if commands2
then
commands
fi
fi
例如
if [ 1 -eq 1 ]
then
echo "Hi!"
else
echo "???"
fi
例如
if [ $? -eq 0]
then
touch ok.txt
else
fi
for i in list
do
commands
done
例如
for i in 1 2 3 4 5 6
do
echo ${i} "Hi!"
sleep 3s
done
list="CDS exon gene start_codon"
for i in ${list}
do
echo "This feature is ${i}"
done
反引号`` ``里面的是一个命令,会被优先执行
for i in `ls file*`
do
mv ${i} ${i}.txt
done
变量要加{},否则容易分辨不出变量
感受下
a=gene
echo $a1
echo ${a}1
while read id
do
commands
done
ls file* | while read id #选中文件传给变量id
do
mv ${id} ${id}.txt #改名字
done
(1)${变量#关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除
(2)${变量##关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除
(3)${变量%关键字} 若变量内容从尾开始的数据符合“关键字”,则将符合的最短数据删除
(4)${变量%%关键字} 若变量内容从尾开始的数据符合“关键字”,则将符合的最长数据删除
id=example.test.fq
echo $id
echo ${id#*.}
echo ${id#t}
echo ${id##*t}
echo ${id%.*}
echo ${id%%.*}
(1)${变量/旧字符串/新字符串} 若变量内容符合“旧字符串”,则首个旧字符串会被新字符串替换。
(2)${变量//旧字符串/新字符串} 若变量内容符合“旧字符串”,则全部旧字符串会被新字符串替换。
id=data.tar.gz
echo ${id/ta/xy}
echo ${id//ta/xy}
(1)${变量:索引} 截取变量从索引位置到末尾的所有字符
(2)${变量:索引:n} 截取变量从索引位置开始的n个字符
(3)${变量:索引:(-n)} ${变量:索引:-n} 截取变量从索引位置到倒数第n+1位的所有字符
id=data.tar.gz
echo ${#id}
echo ${id:3} #索引位置从0开始
echo ${id:3:5}
echo ${id:3:-1}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。