Processando argumentos
O processamento de argumentos que são passados através da linha de comando de um script é tão simples como a seguir. Digamos que tenhamos esse script:
$ cat cmd.bash
#!/bin/bash
echo "arg1: $1"
echo "arg2: $2"
Agora execute sem argumentos:
$ ./cmd.bash
arg1:
arg2:
Com 1 argumento:
$ ./cmd.bash hi
arg1: hi
arg2:
Com 2 argumentos:
$ ./cmd.bash hi bye
arg1: hi
arg2: bye
Verificando os argumentos
Você pode então verificar se os argumentos, 1 & 2, são diretórios válidos ou não, e então salvam ou prosseguem conforme necessário. Então nós introduzimos 2 verificações para ver se os 2 argumentos são diretórios ou não, se não, então saia.
$ cat cmd.bash
#!/bin/bash
[ -d "$1" ] || exit
[ -d "$2" ] || exit
[ $# == 2 ] || exit
echo "arg1: $1"
echo "arg2: $2"
Exemplo
Digamos que temos esses diretórios.
$ mkdir d1 d2
$ ls -l
total 12
-rwxrwxr-x. 1 saml saml 89 Oct 14 23:13 cmd.bash
drwxrwxr-x. 2 saml saml 4096 Oct 14 23:14 d1
drwxrwxr-x. 2 saml saml 4096 Oct 14 23:14 d2
Se recebermos algo que não seja 2 diretórios, o script simplesmente sairá.
$ ./cmd.bash hi bye
Se tivermos dois diretórios:
$ ./cmd.bash d1 d2
arg1: d1
arg2: d2
Se recebermos mais de dois argumentos:
$ ./cmd.bash d1 d2 d3
Deixarei a comparação dos dois diretórios para você. Para aprender Bash, eu diria para o link abaixo para um livro on-line gratuito sobre Bash.