面试题答案
一键面试在Bash中,你可以这样实现:
file_paths=("/home/user1/file1.txt" "/home/user2/file2.txt" "/home/user3/file3.txt")
file_names=()
for path in "${file_paths[@]}"; do
file_names+=("${path##*/}")
done
echo "${file_names[@]}"
解释:
- 首先定义了包含文件路径的数组
file_paths
。 - 然后初始化一个空数组
file_names
用于存储文件名。 - 使用
for
循环遍历file_paths
数组中的每个路径。 ${path##*/}
是Bash的参数扩展,用于从路径path
中提取文件名(##
表示删除从左到右最长的匹配模式,这里模式是*/
,即所有的路径部分直到最后一个/
)。- 将提取的文件名添加到
file_names
数组中。 - 最后使用
echo
输出file_names
数组的所有元素。