linux - 如何防止错误打破循环

标签 linux bash loops error-handling break

如果字符串包含的字符数少于您要使用此命令删除的字符数:
(在此示例中为4个字符)

variable1=${string::-4}
并且此命令在循环内,该错误导致循环中断
是否有任何方法可以防止循环中断,而无需先运行命令来检查字符串是否超过4个字符?
..like“忽略错误并继续执行”命令?

最佳答案

这可能是使用set -eset -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/

相关文章:

javascript - 我的 for 循环中的这些小数来自哪里?

javascript - 鼠标移动时的空闲事件 - 如何创建循环?

python - 如何从现有列表列表中创建第一个元素的新列表

linux - 无法在 Linux 中连接 cloudflare warp vpn

.net - 是否可以使用 node.js 子进程在 linux 上执行 dotnet exe?

linux - 如何杀死交互式 shell 和在其上运行的进程/作业?

bash - 如何在 github 操作中使用计算属性

linux - 将文件从远程主机复制到本地主机

linux - "-bash: !D: event not found"在腻子上写入命令时

linux - 如何在 Linux/Unix 上永久设置 $PATH