如果字符串包含的字符数少于您要使用此命令删除的字符数:
(在此示例中为4个字符)
variable1=${string::-4}
并且此命令在循环内,该错误导致循环中断是否有任何方法可以防止循环中断,而无需先运行命令来检查字符串是否超过4个字符?
..like“忽略错误并继续执行”命令?
最佳答案
这可能是使用set -e
或set -o errexit
出错时退出的副作用。
如果索引对于输入字符串无效,则不能阻止此字符串索引引发错误。
因此,您必须实际检查索引在字符串中是否有效,例如:
#!/usr/bin/env bash
set -o errexit
for string in 'Hello abcd' '42' 'worldfour' '!here'; do
if [ ${#string} -ge 4 ]; then
variable1=${string::-4}
else
variable1=
fi
printf '%s' "$variable1"
done
echo
关于linux - 如何防止错误打破循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64643724/