我有以下scrip,它从两个不同的目录中读取文件。随着第一组文件我做了一些东西。从另一个目录中读取每行的另一组文件(.txt)。现在一切正常,除了我必须包含引号才能使脚本工作。如果我不包含它们,它只会从第一个目录中读取文件。从两个不同的目录中读取文件
这是我正在运行它
庆典move.sh “资料/生成/工作/ generate_profiles_output/merged_profiles/profiles_ * .avro” “刺/ MP /来电/元/文件/ *。TXT”
#!/bin/bash
AVROFILES=$1
FILES=$2
#reading every avro file
for avrofile in ${AVROFILES}
do
//do some stuff with the avrofile
#reading the files
for f in $FILES
do
#reading every line in on from the file
while read line
do
done <"$f"
done
done
'profiles_ * .a'中有一个空格。如果未加引号,则字段拆分会在空间上发生,并且在脚本开始之前发生文件扩展,从而仅保留读取的第一个文件。 –
使用双引号是变量合理处理的事实标准。简单的空格将会破坏你的脚本。总是引用你的变量。阅读:http://mywiki.wooledge.org/WordSplitting – tvm
每个可以在脚本中引用的变量都是*引号。这个脚本的参数被引用,所以变量扩展不能让globs扩展正确。 –