BASH で 2 つの文字列を連結する際に問題があります (Cygwin を使用しています)。
Cygwinウィンドウで段階的に実行しているときは機能します。
つまり、dt=2012-12-31 と c=.txt を明示的に定義してから、filename=${dt}${c} に連結します。
ファイルのコンテンツから値を切り取って割り当てることによってこれらの変数が定義されているスクリプトを実行しているときに、機能しないようです。
変数には上記と同じ値が割り当てられますが、この場合の連結は機能しません。
2012-12-31.txt の代わりに、結果として .txt-12-31 を取得しています。
コードは次のとおりです。
for x in {0..11}
do
IFS=$'\n'
filename=date_list.txt
file=($(<"$filename"))
IFS=$'\t\n'
dt=${file[$x]}
echo $dt
for y in {0..85}
do
IFS=$'\n'
filename=SQL_Mnemonics.txt
file=($(<"$filename"))
IFS=$'\t\n'
Mn=${file[$y]}
for k in {3..502}
do
IFS=$'\n'
c=.txt
filename=${dt}${c}
file=($(<"$filename"))
IFS=$'\t\n'
echo ${file[$k]} > temp_file.txt
cusip=`cut -c11-19 temp_file.txt`
result=$(sh ctest.sh $Mn, $dt, $cusip)
echo "$result" > tmp1.txt
t1=`cut -c18-40 tmp1.txt`
echo $t1 | sed 's/[[:space:]]//g' > temp_file.txt
cat tst.txt | sed 's/-----//g' >> ForFame/${Mn}.${dt}.txt
done
done
done