我正在尝试在 bash 中更新字符串数组的每个字符的 ASCII 值,我想将 2 添加到现有字符的 ASCII 值中。
例子:
declare -a x =("j" "a" "f" "a" "r")
我想更新 ASCII 值,将现有值增加 2,这样“j”将变为“l”
我找不到任何处理 ASCII 值的东西
打印 f '%d' "'$char"
谁能帮帮我?
而且当我尝试将一个数组复制到另一个数组时它也不起作用 请注意,我正在使用
declare -a temp=("${x[@]}")
有什么问题吗?
最佳答案
您可以先使用 printf 将整数转换为八进制转义序列(如 \123
),然后使用 printf 格式字符串生成字符,从而将整数转换为 char:
#!/bin/bash
char="j"
printf -v num %d "'$char"
(( num += 2 ))
printf -v newchar \\$(printf '%03o' "$num")
echo "$newchar"
这仅适用于 ASCII。
关于linux - 在 bash 中编辑一个字符的 ASCII 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20481162/