Как набрать функцию, используя псевдоним в оболочке рыбы?
# 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. Дайте мне знать, если какие-либо дальнейшие изменения могут быть сделаны.