![쉘 스크립트의 파일 확장자 감지에서 `A B.py C D.py`를 `A.py B.py C.py D.py`로 변환 [닫기]](https://linux55.com/image/200965/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%ED%8C%8C%EC%9D%BC%20%ED%99%95%EC%9E%A5%EC%9E%90%20%EA%B0%90%EC%A7%80%EC%97%90%EC%84%9C%20%60A%20B.py%20C%20D.py%60%EB%A5%BC%20%60A.py%20B.py%20C.py%20D.py%60%EB%A1%9C%20%EB%B3%80%ED%99%98%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
관련된이 게시물에 대한 답변
입력이 이면 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
필요하지 않습니다.