Questions tagged «portability»


4
是什么让便携式mp3播放器在Linux上正常工作?
我正在市场上购买新的便携式mp3播放器,并将其主要连接到Linux机器,但偶尔也连接到Windows Vista机器。我想知道我应该在音乐播放器中寻找哪些品质,这些品质建议对Linux开箱即用提供良好的支持。为了使iPod能够始终如一地与Linux完美兼容,我一直很努力,我希望可以找到能够提供更好的本机Linux支持的产品。 到目前为止,我在搜索中注意到了几件事: Ogg Vorbis支持与“ Linux兼容”高度相关 Linux兼容通常具有“仅支持数据传输”之类的条件。 这些是我唯一可以遵循的线索吗?如果您对要寻找的东西有任何建议或可以做对的产品示例,我将不胜感激。

3
发送输出到/ dev / stderr vs.>&2
在脚本中,错误通常使用传送到文件描述符2 &2,即: echo "error" >&2 有时/dev/stderr代替使用: echo "error" > /dev/stderr 看一下/dev/stderr,我发现它只是到的符号链接/proc/self/fd/2,而这又是到/dev/pts/5(在我当前的终端上)的符号链接。 似乎有点复杂。这背后有逻辑吗? 是使用/dev/stderr和&2等价吗? 是那些比其他的首选吗?

1
可执行文件到另一台Linux机器的可移植性
我已经在一台Linux计算机(M1)上安装了Motion程序,并希望在另一台Linux(M2)上使用相同的程序。 该程序的构建方式多种多样,我已经忘记使用了哪个版本,因此我可以直接复制M1中的user / bin / motion文件并将其放在M2的user / bin / motion中吗? 我知道配置文件在哪里,所以我将其遍历,但是我不确定Motion的工作版本在M2上使用的视频驱动程序是什么。有什么办法找出来吗? 有没有一种方法可以找出其依赖性?

3
stat:文件的修改时间戳
我stat -f %m .bashrc用来获取我的.bashrc在osx上的修改时间。但是,当我在ubuntu上运行相同的命令时,它会吐出错误: stat: cannot read file system information for %m': No such file or directory 是否有兼容的方法来实现这一目标?


5
通用的非bash时间基准替代方案?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 3年前关闭。 为了比较不同外壳之间脚本的运行时间,一些SE答案建议使用bash的内置 time命令,如下所示: time bash -c 'foo.sh' time dash -c 'foo.sh' ... 等,每个要测试的外壳。这样的基准测试无法消除每个shell加载和初始化自身所花费的时间。例如,假设上述两种命令被存储在一缓慢的设备具有早期软盘的读取速度,(124KB /秒), dash(一〜150K可执行程序)将加载大约7倍的速度比bash(〜1M),所述壳加载时间会使time数字产生偏差-这些外壳的预加载时间与加载foo.sh外壳后测量每个外壳下的运行时间无关。 什么是可以在每个Shell中运行的用于脚本计时的最佳便携式和通用工具?因此,上面的代码如下所示: bash -c 'general_timer_util foo.sh' dash -c 'general_timer_util foo.sh' 注意:因为没有可移植的或通用的命令,所以没有外壳内置 time命令。 更好的是,该实用程序还能够对Shell内部命令和管道所花费的时间进行基准测试,而无需用户先将它们包装在脚本中。这样的人工语法会有所帮助: general_timer_util "while read x ; do echo x ; done < foo" 一些shell time可以管理这个。例如bash -c "time while false ; do : …

5
如何以编程方式检测awk风味(例如gawk vs nawk)
我使用的命令行应用程序实质上是bash shell脚本的集合。该应用程序被编写为可以在BSD / OSX和Linux上运行。其中一个脚本依赖于awk。它包含两个awk命令:一个是为nawk编写的(标准BSD awk实现),另一个是为gawk编写的(GNU awk实现)。 有问题的两个awk命令与不同的环境不兼容。特别是当与gawk一起运行时,nawk命令失败。该脚本检查内核名称(即uname -s)以确定主机环境,然后运行适当的awk命令。但是,我更喜欢在安装了GNU核心实用程序的Mac OS X上工作,因此脚本无法正确运行。 在思考如何最好地修复此错误的过程中,我想到,很高兴知道如何以编程方式区分常见命令行实用程序的不同样式,最好以相对健壮和可移植的方式进行区分。 我注意到nawk不接受'-V'标志来打印版本信息,因此我认为应该执行以下操作: awk -V &>/dev/null && echo gawk || echo nawk 另一个变化可能是: awk -Wversion &>/dev/null && echo gawk || echo nawk 这似乎适用于我的两个测试环境(OS X和CentOS)。这是我的问题: 这是最好的方法吗? 有没有一种方法可以扩展它以处理awk的其他变体(例如,awkk,jawk等)? 甚至值得担心其他版本的awk吗? 我还应该提到我对awk知之甚少。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.