0
我有一个纯文本文件,其中包含由短划线分隔的曲目标题&。 我想将所有标题放入一个数组(TRK_TITLE[]
)。 同时创建一个艺术家阵容(ARTIST[]
)。 下面是我使用的代码:在Bash shell脚本中将值赋给数组
CTR=0
# Read in the track title file
while read line
do
# Add to the counter
CTR=$((CTR + 1))
# Get the track number
TRK_NUM[$CTR]=$CTR
# VARIOUS is set by command line parameter
if [ $VARIOUS = "FALSE" ]
then
# -- THIS BIT WORKS! ------------------------------
TRK_TITLE[$CTR]=${line}
# ARTISTS determined by grandparent directory name.
ARTIST[$CTR]="$ARTISTS"
# THE BIT THAT DOESN'T WORK AS IT APPEARS ---------
else
# VARIOUS has been set to TRUE
# Get the track title
# 1st, Make sure I'm dealing with something sensible
echo "$line"
# Get the length of the line,
# just for information
total_len=${#line}
# Find the position of the "-"
dash_pos=`expr index "$line" -`
# These lines prove that the syntax works
echo "${line:0:$dash_pos - 2}"
echo "${line:$dash_pos + 1}"
echo $total_len "--" $dash_pos
# Now add to arrays
TRK_TITLE[$CTR]="${line:0:$dash_pos -2}"
#TRK_TITLE="${line:0:$dash_pos -2}"
ARTIST[$CTR]="${line:$dash_pos + 1}"
#ARTIST="${line:$dash_pos + 1}"
#Now to see the output
echo $TRK_TITLE[$CTR] "is Track"
#echo "$TRK_TITLE is Track"
echo $ARTIST[$CTR] "is Artist"
#echo "$ARTIST is Artist"
fi
# keep going until the end
# Variable name used for input file
done < "$FYL_2_USE"
当哈希值是他们在哪里的输出是这样的:
献给我爱的人 - 的妈妈们和该帕帕斯
献给我爱
的妈妈们和该帕帕斯
53一 - 29
[19]是轨道
[19]是艺术家
如果散列被交换的变量和echo 语句,输出是这样的:
专用于我爱的人 - 妈妈与奶爸
献给我爱的人
个的妈妈们和该帕帕斯
53 - 29
专用于我爱的是轨道
的妈妈们和该帕帕斯是艺术家
Shell是羚击V4.1.0 (2)
感谢您发现我明显的错误Tomasz我怎么能看不到? –