linux查看变量_Linux:脚本编程2/3:循环、变量索引

参考:生信技能树

315f893c84b0c28abf2ea2aecc288a77.png

if条件语句

d0f9e6866e92d5824b0c6c282654bc21.png

if 条件语句的常见条件:数值判断、字符串判断、文件判断 

1。数值判断 :

9527d5329dff82201e16e4791700642d.png

注意:中括号 内部有空格

判断1是否等于2

if [ 1 -eq 2 ] > then> echo 1=2> else> echo 1!=2> fi  #输完fi后,空格后回车,即运行

731377939debc6690dc5c30f10ca17ff.png

判断一下,判断上一句命令是否成功,成功就创建一个ok.txt文件

if [ $? -eq 0 ]> then> touch ok.txt> else> touch  false.txt> fi 

状态变量$? echo $?返回0 说明上一个命令运行成功

-eq 判断是否等于

0806fd06e13be7b694ff5d7870085f6f.png

查看是否生成了ok.txt文件,确实有

144d1481f6cdd7de20605c7ffd517773.png

2。文件判断

8f529a4af68bb495be0a1890c92754cf.png

判断ok.txt是否存在  -f ok.txt

if [ -f ok.txt ]> then> echo '存在'> else> echo '不存在'> fi 

5e7f0c56862551123870f38baae42c6b.png

3。字符串判断

d6b5209eeb9427efc41308e183a628e0.png

for条件语句

0a2b89a83247fea5d96691c11c5d1f89.png

done结尾

for i in 1 2 3 4 5> do> echo ${i} "欢迎你哦"> done 

a185273e931616b79b77b59979ec9be0.png

批量创建/删除10个文件 file1, file2, ... file10

1到10 简写为1..10

for i in {1..10}> do> touch file${i}# rm file${i}> done 

可以把循环内容,先赋值

list="CDS exon gene start_codon stop_codon"for i in ${list}> do> echo "这是什么,这是 ${i}"> done

a7e24033da53177662d5313684a23888.png

可以ls来循环

先创建10个file

touch file{1..10}

ls查看

570a5c5c728153a092b8183b33e7c5f2.png

查看file开头文件

ls file*

4cee692307480fa48bdec70d417efbf1.png

批量重命名文件

`ls file*` 反引号

for i in `ls file*`> do > mv ${i} ${i}.txt> done

mv ${i} 当i=1时,就是file1,

mv ${i} ${i}.txt 就是把file1命名成file1.txt

621c005c4fcf6fa312228481e2562d6b.png

批量删除file开头文件

rm file*

while循环

8e3d8fac3e7b5fb6d2d59be05d6c665e.png

同样先创建10个file文件

while循环重命名

ls file* | while read x # x是自定义变量 > do> mv ${x} ${x}.txt > done

7a5e6b5d321f50a285f6fd1ce47cebe4.png

查看readme.txt文件

cat readme.txt
cat readme.txt | while read x> do> echo 1 ${x}> done

这里${x}循环,当x=1,就是readme.txt的第一行内容,内容循环

e1340873ed9ca63045a81c31526e4ea7.png

练习

1。软件安装与环境变量:请安装一个二进制软件 bowtie2,包括下载、解压、调用 bowtie2 命令的帮助文档,修改环境变量 PATH。

不需要下载这个软件,因为服务器上已经有了,拷贝一份即可 /home/hcguo/tmp/biosoft/bowtie2-2.3.4.3-linux-x86_64.zip

第一步把这个软件(目录已给)拷贝到 当前目录./

cp /home/hcguo/tmp/biosoft/bowtie2-2.3.4.3-linux-x86_64.zip ./

ls查看确实有了这个zip安装包

18666248bbf35842c5756ced1d997bf1.png

unzip解压

unzip bowtie2-2.3.4.3-linux-x86_64.zip

c7b5246b5afb3e3eafe8b233fa08b0e9.png

查看一下

ls bowtie2-2.3.4.3-linux-x86_64

可以看到里面东西

b6580807830d5df805eb3e77d0d54dd6.png

pwd查看此时目录

c9cfb06f68c2521f7f25a30816508b13.png

复制这个目录下面有用

我们这里 添加环境变量

echo 'export PATH="/trainee/Aug9/bowtie2-2.3.4.3-linux-x86_64:$PATH"' >> ~/.bashrc

激活一下

source ~/.bashrc #重新激活,才生效

查看帮助文档

bowtie2 --help

说明安装成功!

4aea44a8211daab2596a25942dc7801d.png

2。if 语句与状态参数:在上一题修改好了环境变量之后,回到家目录,再次调用 bowtie2 命令的帮助文档,然后使用 if 语句判断是否调用成功(提示:状态参数变量),如果成功,输出:yes ,否则输出 no

状态变量$? echo $?返回0 说明上一个命令运行成功

-eq 判断是否等于

if [ $? -eq 0 ]> then> echo yes> else> echo no> fi

a70e93c413de5716d3649e5675d6bb9a.png

3。if 语句与自定义变量:

  • 创建文件  file1

  • 然后判断当前目录下是否有  file1  这个文件

  • 如果是,输出:yes ;否则什么都不做

判断file1是否存在  -f file1

touch file1 #创建文件
if [ -f file1 ]> then > echo yes> else> echo no> fi

fd7a794ab7678b8337ef739d36770c51.png

参数扩展:掐头去尾

bce139d48ae550320832df8be12baa13.png

赋值一串字符

adhfowe.adfhwe.ahfwo23

id=adhfowe.adfhwe.ahfwo23

掐头:一个#号,去最短

echo ${id#*hf}

{id#*hf} 

*是通配符,把前面hf出现最短的部分

ba145c1fcefdd55d3b64c613ce51ef66.png

掐头:两个##号,去最长

echo ${id##*hf}

删掉了hf出现最长的部分

cf70c687b9dfe1b345b3ea3b35a82e36.png

去尾:一个%, 去最短的尾

echo ${id%hf*}

f49de2aca96a624662d53996a7d76701.png

去尾:两个%%, 去最长的尾

echo ${id%%hf*}

e9d3ec74dc3cf5436bd0da9ec90e0b10.png

1607ec217756395a721144771b771e4b.png

把ad全部替换成AD

echo ${id//ad/AD}

321e96f48c23dfff305c280d35414da5.png

如果只替换第一处就是,一个/

echo ${id//ad/AD}

4。创建 10 个文件 test_file_1 ~ test_file_10 ,使用循环语句(建议用 while read id),将上面的 test_file_1 ~ test_file_10 进行重命名,如:test_file_1 改为 test_1

创建10个文件

touch test_file_{1..10}

ls查看

ls test_file*

1b216bd1df4c04b8a7d78b87a53f60b1.png

while批量替换

ls test_file* | while read id; do  mv ${id} ${id//file_/}; done

d6130b50e66350c940d07bced8165d02.png

-------------------------

变量索引

51bfea5bfb2b0a12ed3e62efc562ed54.png

赋值一个字符串

id=Data.tar.gz

展示多少字符

echo ${#id}

有11个字符

0fc7c664bed7a4a6a5cb6f096549da53.png

linux索引是从0开始的

9ff62ee48a7765385a679a8f4eb96ddb.png

从第3位到最后一位 {id:3}

echo ${id:3}

b0226fa230bfcbcff7b1e186b2b0622b.png

从3开始,后面一共取5位 {id:3:5}

echo ${id:3:5}

5bc854f9ca0b3bdffa5a60ba8ef4c933.png

从第3位,取到倒数第二位:{id:3:-1}

echo ${id:3:-1}

7858718daf92d8d4e3e089a9435fc211.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值