Мой сценарий считывает и отображает теги id3. Я пытаюсь заставить его эхо-неизвестно, если поле пусто, но каждый оператор if, который я пытаюсь, не будет работать. Теги id3 имеют фиксированный размер, поэтому они никогда не бывают нулевыми, но если значения нет, они заполняются пробелами. Т.е. длина тега title составляет 30 символов. До сих пор я пробовал
echo :$string: #выводит пробелы между 2 ::
if [ -z "$string" ] #из-за пробела всегда будет оцениваться как true
x=echo $ строка | тр-д ''; если [ -z "$строка" ];
# все еще оценивается как истина, но эхо :$x: это эхо ::
сценарий
#!bin/bash
echo "$# files";
while [ "$i" != "" ];
do
TAG=`tail -c 128 "$i" | head -c 3`;
if [ $TAG="TAG" ]
then
ID3[0]=`tail -c 125 "$1" | head -c 30`;
ID3[1]=`tail -c 95 "$1" | head -c 30`;
ID3[2]=`tail -c 65 "$1" | head -c 30`;
ID3[3]=`tail -c 35 "$1" | head 4`;
ID3[4]=`tail -c 31 "$i" | head -c 28`;
for i in "${ID3[@]}"
do
if [ "$(echo $i)" ] #the if statement mentioned
then
echo "N/A";
else
echo ":$i:";
fi
done
else
echo "$i does not have a proper id3 tag";
fi
shift;
done