如何在BOURNE SHELL中从字符串中提取n个字符?



我想从bourne shell中的字符串中提取具有n个字符的子字符串.下面是我的例子:

#!/bin/sh
MAC=XX:XX:XX:XX:XX:XX
Result: 
MAC_SUBSTR=XX:XX:XX:X

使用cut切割部分刺。

mac_substr=$(printf "%sn" "$mac" | cut -b 1-9)

倾向于在脚本中使用小写变量。使用shellcheck检查脚本


这是非常非常不可能的,你正在使用"Bourne Shell"。它已经不在任何地方使用了。POSIX sh的常见封闭实现是dash(我认为现在在ubuntu中使用)和Busyboxash(alpine linux),其中ash支持变量扩展以提取子字符串:

mac_substr=${mac:1:9}

dash不支持。

最新更新