将 `A B.py C D.py` 转换为 `A.py B.py C.py D.py` 从 shell 脚本中的文件扩展名检测

将 `A B.py C D.py` 转换为 `A.py B.py C.py D.py` 从 shell 脚本中的文件扩展名检测

相关这个帖子的答案
如果输入为A B.py C D.py,则输出变为A.py B.py C.py D.py

我想在下面给出的另一个脚本中实现此功能:

#!/bin/bash

echo -n "Round Name:"
read round
mkdir $round

read -r -p "Enter the filenames:" -a arr
for filenames in "${arr[@]}"; do 
cp ~/Documents/Library/Template.py $round/$filenames
done

我怎样才能做到这一点?

答案1

看来您想要做的是.py为每个参数添加一个后缀,除非已经存在后缀。

您可以对简单变量执行此操作,如本示例代码所示

for item in A A.py
do
    dest=${item%.py}.py
    echo "Demonstrating that '$item' becomes '$dest'"
done

在这里,我们使用变量替换来删除尾随.py(如果需要删除),然后总是.py再次添加回来。语句内的单引号echo不是必需的。

相关内容