Обратите внимание, что x
никогда не используется;это просто фиктивная переменная для захвата полей, которые вам не нужны, так что разделение полей, выполняемое read
, присваивает нужные значения id
, path
и exec
.
_
чаще используется в качестве такого манекена.Кроме того, лучше просто переопределить значение IFS
только для команды read
, чем переопределить его глобально и (попытаться) восстановить его значение позже.
echo "Debugging: $1"
frst=true
EXECPATH=$(file "$1" | sed -r "s/^.*execfn: '([^']*)'.*$/\1/")
while IFS=' ' read _ id path _ exec
do
if [ "$frst" = true ];then
frst=false
path=$exec
fi
.
.