Я хочу прочитать две строки в качестве параметров bash-скрипта, эти строки должны быть расширениями, затем я хочу заменить расширение файлов первым расширением на второе расширение.
Лучшее, что я мог подумать / найти до сих пор:
#!/bin/bash
first=$1
second=$2
for files in *.$1
do
mv "$files" "${files%.$1}.$2"
done
Теперь предположим, что $1
- это cpp
, а $2
- это C
Мои "сомнения":
- будет
.$1
будет равно.cpp
? *.$1
равно сказать:*.cpp
?- Строка 6 равна
mv "$files" "${files%.cpp}.C"
? - Будет ли предыдущий код обрабатывать имена файлов с пробелами (например,
my file.cpp
) или точками (например,my.file.cpp
)?
Я знаю, что мог бы ответить на первые 3 вопроса в одном вопросе, но мне нужно понять, что именно происходит, и как каждый оператор (.
/*
/%
) Будет работать с данной строкой в параметре.