Как передать два аргумента скрипту bash - PullRequest
0 голосов
/ 27 мая 2020

У меня есть сценарий для изменения структуры из файла .txt в читаемую структуру команды newusers, что отлично подходит для 1 файла, но это означает, что мне приходится редактировать указанный сценарий каждый раз, когда мне нужно использовать его с новым файлом . Я читал о позиционных параметрах, которые, как мне кажется, мне нужны в данной ситуации, но не знаю, как их применить для достижения моей цели.

Что я могу сделать, чтобы передать аргументы при выполнении скрипта, чтобы он работает с каждым файлом без необходимости каждый раз редактировать скрипт дальше / каждый раз?

Пока мой скрипт работает со скриптом bash. sh, без аргументов.

Код на данный момент:

#!/bin/bash
clear

while IFS=: read -r userid username group; do 
        if [ "$group" = "group1" ]; then
           groupid=2020
         elif [ "$group" = "group2" ]; then
           groupid=2040
         else
           echo "Unknown group"  
         fi
         echo "$userid:password123::$groupid:$username:/home/$userid/bin/bash";
done #<  users2.txt > newusers2.txt

Ожидаемый результат:

bash скрипт. sh oldfile1 newfile1

Ура.

...