Estou procurando passar uma variável para o script (sei como fazer isso), que será repetida pelo script para modificar um pouco essa variável.
$ [scriptname] foo bar
onde [scriptname] é o nome do programa e foo
os bar
dois argumentos passados. [Editado para esclarecimento, após comentário:] O arquivo resultante deve ser nomeado foo_bar1
, mas com a opção de o usuário fazer pequenas modificações no nome do arquivo que não pode ser conhecido de antemão. Portanto, poderia parecer
$ [scriptname] foo bar
The output file name will be foo_bar1
E aqui eu gostaria de poder usar interativamente, como barra invertida, remover 1
e substituí-lo por sublinhado ( _
) e 2
: O nome do arquivo de saída será, portanto, foo_bar_2
E esta seria posteriormente uma variável conhecida ou nova no script, para que os resultados deste script pode ser gravado em um arquivo de saída chamado foo_bar_2
.
O motivo da minha pergunta é que os nomes dos arquivos não têm apenas 3 caracteres, mas são bastante longos e contêm dados específicos. Portanto, o usuário não deve (tentar) redigitar dezenas de caracteres; muitas vezes o nome do arquivo de saída será o proposto. O usuário verá, na maioria das vezes apenas 'Enter'. Embora também tenha a chance de adicionar pequenas modificações próprias. [Espero que isso explique um pouco melhor o que eu preciso.?]
Isso é possível? Se sim, eu ficaria feliz em aprender como fazer isso. E não é necessariamente apenas o último número (eu saberia como removê-lo/isolá-lo). Mas, às vezes, eu também deveria poder chamar o output foofoo_bar_2
.
Com base no meu entendimento do que você está tentando fazer, escrevi um script bash. São necessários dois argumentos. O script será encerrado se exatamente dois argumentos não forem fornecidos. Se o script encontrar dois argumentos, ele os combinará com um
_
intermediário e um1
como sufixo para formar um "nome de arquivo". Em seguida, o script apresentará esse "nome de arquivo" ao usuário e o usuário terá a oportunidade de editá-lo como desejar.O roteiro:
Crie um arquivo chamado
altname
com o seguinte conteúdo:Salve o arquivo. Abra um terminal e execute o script com o comando:
Você deverá ver um prompt como o acima. Use as teclas de seta, delete, backspace, etc. para alterar o nome e pressione Enter. O script exibirá o nome do arquivo final.
Espero que isso ajude