単純な「変数」Bashファイル

単純な「変数」Bashファイル

ファイル名をパラメータとして使用するbashファイルを作成したいと思います。その bash ファイルから拡張子の前に名前を取り、他の場所で使用できるように「変数」にしたいと思います。たとえば、次のコマンドを実行すると、bashスクリプトが実行されますbash_script_name sample.asm

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

だから基本的にフォームはbash_script_name $().asm

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

...しかし私はbashでやります。

答え1

スクリプトの最初のパラメータはにあります$1bash 文字列の置換拡張を引くと、最後の項目がすべて削除され、.結果が次の場所に保存されます$filename

filename="${1%.*}"

$filenameその後、スクリプトのどこでも使用できます。

nasm -f elf "$filename.asm"
ld -s -o "$filename" "$filename".o io.o

答え2

この特別な答えStack Overflowに関する同様の質問がよく考えられたようです。これには、ドットのないファイル(「somefile」)と複数のドットを持つファイル(「somefile.tar.gz」)を処理するロジックが含まれています。

関連情報