shell 读文件 字符串分离组合
这里记录一下 shell 读取文件和对字符串操作的一些语法
#!/bin/bash
cat jobs.txt | while read line # 逐行读文件
do
if [[ $line == job* ]]; then # 双括号内写判定表达式
line=${line:15} # 字符串切割,取第 15 位往后的内容
cmd_array=($line) # 括号将内容转成数组,将会按空格分离 $line 字符串作为数组元素
i=0
for v in ${cmd_array[@]}; do # [@] 表示取整个数组,如果没有 [@] ,则取 $cmd_array 第一个元素。也可通过 cmd_array[i] 访问其第 i 位元素
if [[ $v == *.py ]]; then
cmd_array[i]=example_submissions/${cmd_array[i]} # 字符串拼接
fi
cmd_str=${cmd_str:+${cmd_str} }${cmd_array[i]} # :+判断左侧变量是否已被设定,是则用右侧内容替代
((i++))
done
fi
done