Используя идею Сержа выше, я отредактировал функцию mungefilename в конфигурационном файле .abcde.conf.
Я начал с конфигурационного файла, предоставленного здесь: В Andew's Corner есть очень полезный учебник
Я отредактировал функцию, чтобы она добавляла первый бит строки, возвращаемой из cd-discid.
mungefilename ()
{
CDDISKIDENT=$(cd-discid "$CDROM")
FIRSTPARTID=$(echo $CDDISKIDENT | cut -d' ' -f1)
echo "$@" | sed "s/Unknown\ Album/Unknown\ Album$FIRSTPARTID/" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
}
Если вы хотите иметь возможность выполнять псевдонимы другого пользователя как root без необходимости выполнять дополнительную работу (например, копировать определения псевдонимов в файл профиля root, преобразовывать псевдонимы пользователя в сценарии оболочки), тогда вы можете извлечь команду псевдонима и передать ее оболочке.
Пример:
sudo su - otheruser -s /bin/bash -c "alias ll | sed -E \"s/.+='(.+)'/\1/\" | bash"
Или вы можете использовать мою общую функцию «запустить как»:
runas() {
if [ $# -eq 2 ]; then
# Check if user exists
id -u $1 > /dev/null 2>&1
if [ $? -gt 0 ]; then
echo "$FUNCNAME: no such user"
return 1
fi
# Check if alias exists
sudo su - $1 -s /bin/bash -c "alias $2" > /dev/null 2>&1
if [ $? -eq 0 ]; then
# Alias is defined; execute $2 as alias
sudo su - $1 -s /bin/bash -c "alias $2 | sed -E \"s/.+='(.+)'/\1/; s/'\\\'//g\" | bash"
else
# Alias is not defined; execute $2 as command
sudo su - $1 -s /bin/bash -c "$2"
fi
else
echo "Execute a command or alias as another user"
echo "Usage: $FUNCNAME USER ALIAS"
return 2
fi
}