u-boot-utilite/u-boot-update-env.sh

35 行
916 B
Bash
Executable File

#!/bin/bash
# This script will accept a text file with standard u-boot commands and
# load it to the U-Boot environment. The original environment is saved
# in a backup file in the current directory
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
BACKUP_FILE=u-boot_env-$$.bak
if [ -z "$1" ]; then
echo "Usage: $0 U-BOOT_ENV_FILE"
exit 1
fi
# Backup existing U-Boot environment
env fw_printenv > $BACKUP_FILE || exit 2
# Check if the ethaddr variable is defined
ethaddr=$(fw_printenv ethaddr 2> /dev/null)
while read line
do
# Suppress the ethaddr overwrite warning
[ -z "$ethaddr"] && [[ "$line" =~ "ethaddr" ]] && continue
# ignore comments starting with '#'
if [[ "$line" == *'#'* ]]; then
line=$(echo $line | cut -d\# -f1)
fi
if [[ $line = *[^[:space:]]* ]]; then
env fw_setenv $(echo $line | sed 's/=/ /') || exit 3
fi
done < "$1"