【发布时间】:2014-04-05 00:36:48
【问题描述】:
我一直试图在开始和结束时截断文件名。
我可以使用以下代码实现这一点:
#!bin/bash
FILENAME="hello123.txt"
NAME=${FILENAME%.t*}
NUMBER=${NAME:5}
DOESNTWORK=${${FILENAME%.t*}:5}
echo "$FILENAME"
echo "$NAME"
echo "$NUMBER"
echo "$DOESNTWORK"
我的问题在于 DOESNTWORK 行。
我收到以下错误: main.sh: line 7: ${"${FILENAME%.t*}":5}: bad substitution
有人可以指出行中的错误吗?
谢谢,
【问题讨论】:
-
错误是bash不支持嵌套替换。
-
感谢您的回复!有没有办法我可以用单行命令做我想做的事情?
-
如果你使用zsh就可以!
-
tr -dc '[:digit:]' <<< "${FILENAME}"?echo "${FILENAME//[^0-9]/}?echo "${FILENAME:5:3}"?