Eu imagino que você tenha arquivos em um lugar ( /path/to/originals
) e queira copiá-los para um local de destino ( /path/to/destination
) e modificá-los depois. Seu script atual se parece com:
mkdir /path/to/destination
cp /originals/this-file /path/to/destination
cp /originals/this-other-file /path/to/destination
modify-somehow /path/to/destination/this-file
modify-somehow /path/to/destination/this-other-file
mas você não gosta de ter hardcode / path / to / destination em todos os lugares.
Então você pode pedir para usar "o valor do primeiro parâmetro posicional" em vez de codificar /path/to/destination
. Como outros mencionaram, o valor do primeiro parâmetro posicional é $1
.
Portanto, o seu script deve ser:
mkdir $1
cp /originals/this-file $1
cp /originals/this-other-file $1
modify-somehow $1/this-file
modify-somehow $1/this-other-file
E você deve invocar isso adicionando o caminho de destino como um argumento:
my-script /path/to/destination
Eu tentei manter o script simples, mas você poderia melhorá-lo, como usar um único comando cp
para copiar vários arquivos. Você também pode usar uma variável para o caminho /originals
(mas, em vez de um argumento, este aqui soa como uma declaração constante no início do seu script)
Por fim, considere que, se os nomes dos seus arquivos tiverem espaços, você precisará colocar o seu $1
entre aspas duplas.