我正在尝试使用IFS分割字符串,查看许多地方提供的示例.我希望在分割后得到数组的最后一个元素,我正在做以下目标:
path_to_file="/home/user/path/to/fileName.txt";
IFS='/' read -ra split_path <<< "$path_to_file";
file_name="${split_path[-1]}";
Run Code Online (Sandbox Code Playgroud)
它给出了整个字符串,它由数组中单个元素中的空格分隔.当我运行最后一个命令时,我收到错误消息"-bash:split_path:bad array subscript".我做错了什么不给我不同的数组索引中的分隔元素.
Bash 3.x不理解-1表示数组的最后一个元素.你要
echo "${split_path[${#split_path[@]}-1]}"
Run Code Online (Sandbox Code Playgroud)
另请注意引用.
正如其他人所指出的那样,basename对你的钱来说可能更好,或者${path_to_file##*/}
| 归档时间: |
|
| 查看次数: |
530 次 |
| 最近记录: |