我想从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
不支持。