W04-bash_tips.md

W04-bash_tips.md

社蕙 752 2022-08-28

1. bash脚本相关问题

两个非常重要的参考与教程:

  1. 菜鸟教程
  2. 易百教程

1.1. 技巧

1.1.1. terminal输出彩色文字

参考shell在linux命令行中输出带颜色的彩色文字

基本格式\033[3甲;4乙m文字的内容\033[0m为,其中甲乙是一位数字,例如:

# 输出黑底绿字
echo -e "\033[32;40m""[Success]: upsampled rgb file genertated""\033[0m"

0是黑色,2是绿色,详见下图:

terminal色表

在putty的默认设置里,3是亮黄色

更详细的格式参见Customize your Bash prompt

1.1.2. 将当前文件夹下的文件存为数组

两种方式:

for f in `find . -type f`
do
    echo $f
done

注意find的参数可能需要更细致的确定。

#!/bin/bash

j=0
for i in `ls -1`
do
    folder_list[j]=$i
    j=`expr $j + 1`
done

echo ${#folder_list[@]}
echo $folder_list

但它们都有一个共同的缺点,如果一个文件/文件夹名称有空格(骂的就是windows自动生成的System Volume Information),那么拆分就会有问题。

1.2. 其他问题

1.2.1. .sh中cd无效

sh脚本中执行的内容是在子shell中执行,因此退出之后母shell的位置并不会变,参考基于shell脚本中cd命令无效的解决方法

在terminal中直接输入source ***.sh或者. ./***.sh