我有以下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擴展正確。 –