Arquivo Bash simples "Variável"

4

Eu só quero fazer um arquivo bash simples que usa um nome de arquivo como parâmetro. Nesse arquivo bash, eu quero pegar o nome antes da extensão e tê-lo como uma "variável", para usar em outros lugares. Por exemplo, se eu fosse executar bash_script_name sample.asm , o script bash seria executado:

nasm -f elf sample.asm
ld -s -o sample sample.o io.o

Então, basicamente, a forma de bash_script_name $().asm

nasm -f elf $().asm
ld -s -o $() $().o io.o

... no entanto, você faria isso no bash. Eu não sei, porque eu não tenho quase nenhuma experiência bash.

    
por Chiggins 13.11.2010 / 22:57

2 respostas

10

O primeiro argumento para o script estará em $1 . Você pode usar uma substituição da sequência do bash para extrair a extensão; isso remove tudo da última ocorrência de . forward e armazena o resultado em $filename :

filename="${1%.*}"

Então você pode usar $filename no seu script onde quiser:

nasm -f elf "$filename.asm"
ld -s -o "$filename" "$filename".o io.o
    
por 13.11.2010 / 23:13
0

Esta resposta em particular a uma pergunta semelhante no Stack Overflow parece ter sido muito bem pensada. Inclui lógica para lidar com arquivos sem pontos neles ("somefile") e arquivos com vários pontos neles ("somefile.tar.gz").

    
por 10.06.2012 / 17:25