Я задавался этим на некоторое время, но я часто был в ситуации, когда у меня есть папки или файлы с именем с помощью следующей конвенции:Различные диапазоны номеров, как переменные в Bash
- 1R143D1B
- 2R143D1B
- 3R243D1B
- 4R343D1B
- 5R343D1B
Если первое число (1-5) будет представлять собой, например, сканирование. Второе число сразу после «R» (1, 1, 2, 3) будет представлять день. 43D1B - номер темы.
Я постоянно в ситуациях, когда мне нужно попасть в несколько папок предметов (например, единственное, что меняется в соглашениях об именах, это «43D1B» для других значений объекта, таких как «44U2A»), названных так и часто думали были бы способы, как «для» циклов, чтобы я мог кодировать что-то, что позволяет мне генерировать эти значения без жесткого кодирования команды cp (или любой другой).
Так что вместо hardcoding, например, cp /home/1R143D1B/1R143D1B.file /newfolder
и делая это 50+ раз, я надеялся, что смогу сделать первое значение (значение сканирования) для переменной цикла или массива, а второе (значение дня) другой переменной, так что я мог бы сделать что-то вроде cp /home/${var1}R${var2}${subject}/${var1}R${var2}${subject}.file /newfolder
Но всякий раз, когда я думаю об этом логически я не уверен, что лучший способ пойти об этом, потому что соглашение выше установлено, что путь - Сканирует 1 & 2 всегда находятся на 1-й день , сканирование 3 всегда на 2-й день, а сканирование 4 & 5 всегда на 3-й день, поэтому число 1-5 не связано с цифрами 1-3, поэтому я не знаю, будет ли цикл работать, и я не уверен, что еще нужно. Может ли кто-нибудь поговорить с другим путем?
Почему вы не можете использовать подстановочные знаки? Как в 'cp /home/?R?"$subject"/?R?"$subject".file/newfolder'. – choroba