我在Ubuntu上从源代码编译了mplayer。我不想使用GUI但是我想制作一个可执行的bash文件,它从一个被删除到bash文件的文件中获取路径。我该如何做到这一点呢?
我想让它看起来像这样:
mplayer <get full path to file
。file-ending>
我希望可执行文件bash文件位于我的桌面上;)
如果可能,我只是喜欢rightclick -> start with mplayer
功能,但我不知道如何制作。
答案 0 :(得分:4)
尝试:
#!/bin/bash
mplayer "$1"
删除文件的文件路径将作为第1个命令行参数传递给脚本文件。
答案 1 :(得分:1)
您可以使用$1
访问传递给脚本的参数(对于第一个参数)。此外,您还应该创建一个.desktop
文件,以便Nautilus(或您的桌面管理员)知道该怎么做,并使用%u
将删除的路径传递给脚本。
例如,您可以创建名为DropOverMe.desktop
的文件:
[Desktop Entry]
Encoding=UTF-8
Name=Drop Over Me
Comment=Execute the script with the file dropped
Exec=gnome-terminal -e "/folder/to/the/script/launchme.sh \"%u\""
Icon=utilities-terminal
Type=Application
我使用gnome-terminal
,因为我的PC上有Ubuntu,请使用您首选的终端应用程序。
脚本可能是这样的:
#! /bin/bash
echo "Launched with $1" >> /tmp/history.log
答案 2 :(得分:0)
通过使用 mate-terminal , gnome-terminal 或 konsole ,您可以将其拖放到相应的窗口中。
这将发送提示的URL,并添加一个空格,但没有 endline 。
为此,运行 mplayer ,我编写了这个小循环函数:
while IFS=$' \t\r\n' read -d '' -p "Wait for URL to play: " -rsn 1 str &&
[ "$str" ];do
while IFS= read -d '' -rsn 1 -t .02 char
do str+="$char"
done
if [ "$str" ] ;then
read -a req <<<"$str"
echo $req
mplayer $req
fi
done
read -a req
会将字符串拆分为仅考虑第一部分