我正在开发一个基于ffmpeg的小应用程序,我读了一个为ubuntu制作的教程,他们建议hash在生成的可执行文件上使用该命令.
我很好奇这个命令,你有没有用过它?为了什么目的?
当我在我的源文件夹中运行它时,我得到了这个(一旦编译)
$ hash
hits command
1 /usr/bin/strip
1 /usr/local/bin/ffmpeg
1 /usr/bin/svn
4 /usr/local/bin/brew
2 /usr/bin/git
1 /bin/rm
1 /bin/cat
1 /usr/bin/ld
1 /bin/sh
4 /usr/bin/man
5 /usr/bin/make
4 /usr/bin/otool
15 /bin/ls
6 /usr/bin/open
2 /usr/bin/clear
Run Code Online (Sandbox Code Playgroud)
看起来像我的bash_history的摘要......
当我在可执行文件上运行它时,我没有显示很多行,并且该应用程序似乎没有任何变化?
$ md5 ffserver
MD5 (ffserver) = 2beac612e5efd6ee4a827ae0893ee338
$ hash ffserver
$ md5 ffserver
MD5 (ffserver) = 2beac612e5efd6ee4a827ae0893ee338
Run Code Online (Sandbox Code Playgroud)
当我寻找这个男人时,它只是说它是一个内置功能.真有用:)
它在Linux和MacOSX上运行(比如存在).
谢谢你的帮助,我今天可能会学到一些东西:)
sar*_*old 11
hash实际上并不是你的历史; 它是一个bash(1)内置的shell,它维护着最近执行的程序的哈希表:
__PRE__
(来自bash(1).)
您找到的指南可能建议运行它只是为了查看下一步将执行哪个 ffmpeg命令; 也许有一个ffmpeg由分发包装提供的程序,如果你只是输入ffmpegshell ,他们想要确保执行新的程序而不是发行的程序.
这似乎是一个舒展,因为它会还需要具有包含新的目录ffmpeg在PATH 之前的发行版提供的版本,而且也不能保证情况.
如果您使用可能未安装在系统上的命令,请检查其可用性并告诉用户缺少什么.从脚本与风格
例:
NEEDED_COMMANDS="sed awk lsof who"
missing_counter=0
for needed_command in $NEEDED_COMMANDS; do
if ! hash "$needed_command" >/dev/null 2>&1; then
printf "Command not found in PATH: %s\n" "$needed_command" >&2
((missing_counter++))
fi
done
if ((missing_counter > 0)); then
printf "Minimum %d commands are missing in PATH, aborting" "$missing_counter" >&2
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15961 次 |
| 最近记录: |