2014-08-13 3 views
3

Я пытаюсь написать сценарий bash, который принимает переменное число имен файлов в качестве аргументов. Сценарий обрабатывает эти файлы и создает временный файл для каждого из этих файлов.Использование шаблонов bash с префиксом

Чтобы получить доступ к аргументам в цикле я использую

for filename in $* 
do 
    ... 
    generate t_$(filename) 
done 

После того, как цикл закончен, я хочу сделать что-то вроде cat t_$*. Но это не работает. Итак, если аргументы a b c, он указывает t_a, b and c. Я хочу кота файлы t_a, t_b and t_c.

Есть ли способ сделать это, не сохраняя список имен в другой переменной?

ответ

8

Вы можете использовать расширение параметров:

cat "${@/#/t_}" 

/ означает замену, # означает, в самом начале.

Смежные вопросы