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"
这样即可将文件保存在指定位置。