Skip to the content.

1.3 Linux Bash

徐英泽 2024011267

返回引导页


0. 将bash_homework.zip复制入 docker /home/test/desktop,并解压

PS C:\Users\54727> docker cp "C:\Users\54727\Downloads\bash_homework.zip" XuYingze_Linux:/home/test/desktop/
Successfully copied 32.3kB to XuYingze_Linux:/home/test/desktop/

PS C:\Users\54727> docker exec -it -u root XuYingze_Linux bash
root@bioinfo_docker:/home/test# cd /home/test/desktop
root@bioinfo_docker:/home/test/desktop# unzip bash_homework.zip
Archive:  bash_homework.zip

1. 脚本的创建、编写与运行

$ touch bash.sh		#新建脚本
chmod u+x bash.sh	#添加权限
vim bash.sh			#vim编写

root@bioinfo_docker:/home/test/desktop# cat bash.sh	
					#查看编写脚本
#!/bin/bash
cd bash_homework

filename_output="filename.txt"
dirname_output="dirname.txt"

>"$filename_output"
>"$dirname_output"

for item in *; do
        if [ ! -e "$item" ] ;then
                continue
        fi
        base_name=$(basename "$item")
        if [ -f "$item" ] ;then
                echo "$base_name" >> "$filename_output"
        elif [ -d "$item" ]; then
                echo "$base_name" >> "$dirname_output"

        fi

done
echo "处理完成"

结果如下

root@bioinfo_docker:/home/test/desktop/bash_homework# cat dirname.txt
				# dirname.txt结果
a-docker
app
backup
bin
biosoft
c1-RBPanno
datatable
db
download
e-annotation
exRNA
genome
git
highcharts
home
hub29
ibme
l-lwl
map2
mljs
module
mogproject
node_modules
perl5
postar2
postar_app
postar.docker
RBP_map
rout
script
script_backup
software
tcga
test
tmp
tmp_script
var
x-rbp

root@bioinfo_docker:/home/test/desktop/bash_homework# cat filename.txt
				# filename.txt结果
				
a1.txt
a.txt
b1.txt
bam_wig.sh
b.filter_random.pl
c1.txt
chrom.size
c.txt
d1.txt
dirname.txt
dir.txt
e1.txt
f1.txt
filename.txt
human_geneExp.txt
if.sh
image
insitiue.txt
mouse_geneExp.txt
name.txt
number.sh
out.bw
random.sh
read.sh
test3.sh
test4.sh
test.sh
test.txt
wigToBigWig

2. 该脚本的问题与改进手段

实际上,在运行过程中,我们发现,由于没有设置最终文件的保存地点,由于cd bash_homework的指令,文件会保存在bash_homework文件夹内。

解决该问题,可以使用绝对路径的手段:

filename_output="/home/test/desktop/filename.txt"
dirname_output="/home/test/desktop/dirname.txt"

这样即可将文件保存在指定位置。