Всем привет.
Попросил тут меня друг написать ему скрипт. Он часто просматривает видео в нэте, а нетбук очень слабый, и видео во флешках-в-фулскрине часто притормаживает. Так вот, с помощью этого скрипта можно запустить видос в браузере и нажать паузу, а смотреть уже в каком-нибудь нормальном проигрывателе.
Суть:
#!/bin/sh
#encoding=utf-8
pids=`ps x | grep libflashplayer.so | grep -v grep | awk '{print $1}'`
echo "=== FlashPlayer PIDs: ===\n$pids\n"
i=0
for pid in $pids; do
fds=`lsof -p $pid | grep Flash | \
awk '{print $4"|"$7}' | sed 's/[^0-9]//'`
for fd in $fds; do
i=`expr $i + 1`
path=`echo $fd | sed 's/|.*//'`
size=`echo $fd | sed 's/.*|//'`
files=$files"/proc/$pid/fd/$path\n"
list=$list"$i /proc/$pid/fd/$path $size "
done
done
echo "=== Flash files: ===\n$files"
case $i in
0) zenity --title="$0" --error --text="Flash files not found" ;;
1) file=`echo $files` ;;
*)
file=`zenity --title="$0" --list \
--width=430 --height=340 --text="Select file:" \
--column="#" --column="File" --column="Size" \
--print-column=2 $list`
;;
esac
if [ -n "$file" ]; then
dir=`dirname $file`
act=`zenity --title="$0" --list \
--width=420 --height=360 --text="Select action for $file:" \
--column="Actions" --column="Commands" --print-column=2 \
"Copy file" "cp" \
"Open directory in nautilus" "nautilus $dir" \
"Open directory in pcmanfm" "pcmanfm $dir" \
"Open directory in thunar" "thunar $dir" \
"Play file in mplayer" "mplayer $file" \
"Play file in smplayer" "smplayer $file" \
"Play file in vlc" "vlc $file" \
`
case "$act" in
cp)
path=`zenity --title="$0" --file-selection --save`
if [ -n "$path" ]; then
cp $file "$path" | \
zenity --title="$0" --progress --auto-close \
--pulsate --width=600 --text="Copy $file to $path"
fi
;;
*) `$act` ;;
esac
fi
Для работы требуется zenity. Тестировал только на chromium'е которым он пользуется.
.desktop файл:
#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Name=flash
Exec=/home/user/bin/flash.sh
Icon=smplayer
Terminal=false
StartupNotify=true
Type=Application
меняйте строку Exec=/home/user/bin/flash.sh до того места где он будет находиться.
Это один из первых моих опытов написания скриптов (да и вообще один из первых опытов прогания), поэтому буду рад услышать замечания.