for f in n{10..180..10}; do (
cd "$f"
echo cp "$f"_mini_vh1.{coor,xsc} ../../production/"$f"
) done
Вы можете использовать фигурные скобки для расширения до всех желаемых имен: {start..stop..incr}
. Вы можете использовать один и тот же прием для объединения двух имен файлов с {coor,xsc}
.
Будьте внимательны при написании $f_mini_vh1
. Это переменная с именем f_mini_vh1
. Чтобы отделить f
от остальных, вам нужно написать либо ${f}_mini_vh1
, либо "$f"_mini_vh1
. Я рекомендую последним руководствоваться общими рекомендациями о том, что всегда следует указывать расширения переменных.
подоболочка с круглыми скобками избавит вас от необходимости cd ../
каждый раз. Мне нравится использовать подоболочку каждый раз, когда я использую cd
в скрипте, чтобы ограничить область изменения каталога.
Вы также можете просто полностью пропустить cd
, передав добавление $f
в команду cp
:
for f in n{10..180..10}; do
echo cp "$f"/"$f"_mini_vh1.{coor,xsc} ../production/"$f"
done