gpt4 book ai didi

shell - 比较bash中声音文件的长度

转载 作者:行者123 更新时间:2023-12-03 00:32:34 25 4
gpt4 key购买 nike

我想要一个shell脚本,该脚本检查声音文件的长度,并检查该长度是否短于指定的长度。但是我在if语句中不断收到错误消息“找不到命令”。

#!/bin/bash
soundlength=$(soxi -D $1)

enter code here
if [$soundlength < $2]
then
# do something
fi

我猜$ soundlength是一个字符串,并且无法将字符串与int进行比较,但是我找不到解决方案。

在此先感谢您提供所有答案。

最佳答案

问题是soxi返回0或浮点数-例如27.741995,因此您将需要bcawk来检查输出是否大于N,这是因为bash不支持浮点数。

这是bc的示例:

#!/bin/bash

soundlength=$(soxi -D $1)

if [ 1 -eq "$(echo "${soundlength} > ${2}" | bc)" ]; then
echo "${soundlength} is > than ${2}"
fi

这是 AWK的示例:
#!/bin/bash

soundlength=$(soxi -D $1)

if awk 'BEGIN{exit ARGV[1]>ARGV[2]}' "$z" "$y"; then
echo "${soundlength} is > than ${2}"
fi

如果您不想同时使用 bcawk,则可以尝试使用 zsh shell,它支持浮点数。

关于shell - 比较bash中声音文件的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46383452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com