Bash

A B.py C D.py 轉換為 A.py B.py C.py D.py 從 shell 腳本中的文件副檔名檢測

  • April 1, 2022

此執行緒答案
相關, 如果輸入為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

我怎樣才能做到這一點?

看來您想要做的是為.py每個參數添加一個後綴,除非已經存在一個。

您可以對一個簡單的變數執行此操作,如本範常式式碼中所示

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

在這裡,我們使用變數替換來刪除尾隨.py(如果有要刪除的話),然後總是.py重新添加。語句中的單引號echo不是必需的。

引用自:https://unix.stackexchange.com/questions/686183