我在 BASH 中连接两个字符串时遇到问题(我使用的是 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