Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在BASH脚本中使用if/fi将变量与int进行比较_Bash - Fatal编程技术网

在BASH脚本中使用if/fi将变量与int进行比较

在BASH脚本中使用if/fi将变量与int进行比较,bash,Bash,我试图将$duration变量与int进行比较,看看它有多长。我需要确定要在文件名中附加多少个0以保持干净的名称,例如 cap_000001.png cap_002938.png 我目前的发言是: if [ $duration < 1000 ]; then sudo ./v2u cap_000$duration.png echo 1000 seconds fi if [ $duration < 100 ]; then sudo ./v2u cap_0000$d

我试图将$duration变量与int进行比较,看看它有多长。我需要确定要在文件名中附加多少个0以保持干净的名称,例如

cap_000001.png

cap_002938.png

我目前的发言是:

if [ $duration < 1000 ]; then
    sudo ./v2u cap_000$duration.png
    echo 1000 seconds
fi
if [ $duration < 100 ]; then
    sudo ./v2u cap_0000$duration.png
    echo 100 seconds
fi
if [ $duration < 10 ]; then
    sudo ./v2u cap_00000$duration.png
    echo 10 seconds
fi
if[$duration<1000];然后
sudo./v2u cap_000$duration.png
回声1000秒
fi
如果[$duration<100];然后
sudo./v2u cap_0000$duration.png
回声100秒
fi
如果[$持续时间<10];然后
sudo./v2u cap_u00000$duration.png
回声10秒
fi
谢谢你的帮助


如果有人有一个更简单的解决方案,用一致的位数命名文件,那也太好了

试试
manprintf
。对于这个任务来说,它比一堆
if
块要好得多

sudo ./v2u $(printf "cap_%06d.png" "$duration")

请尝试
manprintf
。对于这个任务来说,它比一堆
if
块要好得多

sudo ./v2u $(printf "cap_%06d.png" "$duration")

要直接回答有关比较数字的问题,请执行以下操作:

if [ "$duration" -lt 1000 ]; then
你明白了。:-)

Amber的答案当然是,从森林而不是树木的角度来看要好得多:

printf "cap_%06d.png" "$duration"

要直接回答有关比较数字的问题,请执行以下操作:

if [ "$duration" -lt 1000 ]; then
你明白了。:-)

Amber的答案当然是,从森林而不是树木的角度来看要好得多:

printf "cap_%06d.png" "$duration"

如果您更喜欢使用比较运算符,例如
,而不是
-lt
,Bash会执行如下数字比较:

if (( duration < 1000 )); then

如果您更喜欢使用比较运算符,例如
,而不是
-lt
,Bash会执行如下数字比较:

if (( duration < 1000 )); then

同意这是一个更好的解决方案+1.我也对OP的问题写了一个直接的回答,以及你的方法的详细版本。我希望你不会介意。:-)同意这是一个更好的解决方案+1.我也对OP的问题写了一个直接的回答,以及你的方法的详细版本。我希望你不会介意。:-)