冒号破坏了 bash 脚本
colon breaks the bash script
我正在尝试 运行 这个脚本:
#!/bin/bash
DAR=$(ffprobe -v error -of default=noprint_wrappers=1:nokey=1 -show_entries stream=display_aspect_ratio )
echo $DAR
if [ $DAR -eq 16:9 ]
then echo sixteen-by-nine
else
echo not-sixteen-by-nine
脚本的结果是:
16:9
line 3: [: 16:9: integer expression expected
not-sixteen-by-nine
如何安全地使用字符串 16:9?
使用 =
进行字符串比较(-eq
仅 用于比较整数,因此出现错误 integer expression expected
)并引用两个值,例如"$DAR"
和 "16:9"
:
if [ "$DAR" = "16:9" ]
这里可能不一定严格引用,但被认为是 "good practice",因为迟早你会得到一个像 16 9
(带有 space)这样的字符串,这会破坏内容.通常,为了安全起见,您总是希望引用字符串(我还发现它更易于阅读,因为现在可以对字符串进行语法高亮显示)。
我正在尝试 运行 这个脚本:
#!/bin/bash
DAR=$(ffprobe -v error -of default=noprint_wrappers=1:nokey=1 -show_entries stream=display_aspect_ratio )
echo $DAR
if [ $DAR -eq 16:9 ]
then echo sixteen-by-nine
else
echo not-sixteen-by-nine
脚本的结果是:
16:9
line 3: [: 16:9: integer expression expected
not-sixteen-by-nine
如何安全地使用字符串 16:9?
使用 =
进行字符串比较(-eq
仅 用于比较整数,因此出现错误 integer expression expected
)并引用两个值,例如"$DAR"
和 "16:9"
:
if [ "$DAR" = "16:9" ]
这里可能不一定严格引用,但被认为是 "good practice",因为迟早你会得到一个像 16 9
(带有 space)这样的字符串,这会破坏内容.通常,为了安全起见,您总是希望引用字符串(我还发现它更易于阅读,因为现在可以对字符串进行语法高亮显示)。