Как набрать функцию, используя псевдоним в оболочке рыбы?

# type repeat ;echo "this is a bash shell output"
repeat is a function
repeat () 
{ 
    local n i;
    n="$1";
    shift;
    for ((i = 1; i <= "$n"; ++i))
    do
        echo Date starting `date`;
        echo Before waiting `date`;
        sleep 6;
        echo Done waiting `date`;
        /usr/bin/mpv /usr/share/sounds/freedesktop/stereo/complete.oga;
        /usr/bin/mpv /usr/share/sounds/freedesktop/stereo/complete.oga;
        /usr/bin/mpv /usr/share/sounds/freedesktop/stereo/complete.oga;
        "$@";
    done
}

Я хотел бы добавить эту функцию для повторения псевдонима в оболочке рыбы. Этот псевдоним уже доступен в bash shell, но я бы хотел использовать то же самое в fish shell. # указывает на пользователя root. Для обычных пользователей это оболочка Fish, которая была установлена ​​по умолчанию.

1 ответ

Решение
function repeat  
set n "$argv[1]";  
set m "$argv[2]";  
for i in (seq $n) ; set i $i+1  
echo "Starting date";date  
sleep 5;  
echo "Before Waiting";date  
sleep 10  
echo "After Waiting";date  
/usr/bin/mpv /usr/share/sounds/freedesktop/stereo/complete.oga;  
/usr/bin/mpv /usr/share/sounds/freedesktop/stereo/complete.oga;  
/usr/bin/mpv /usr/share/sounds/freedesktop/stereo/complete.oga;  
eval $m  
end
end  

Ну, это ответ, который я придумал, и он работает. Он использует медиаплеер MPV. Дайте мне знать, если какие-либо дальнейшие изменения могут быть сделаны.

Другие вопросы по тегам