파일 이름을 매개변수로 사용하는 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
스크립트의 첫 번째 매개변수는 에 있습니다 $1
.bash 문자열 교체확장을 당기면 마지막 항목이 모두 제거되고 .
결과가 다음 위치에 저장됩니다 $filename
.
filename="${1%.*}"
$filename
그런 다음 스크립트의 어느 곳에서나 사용할 수 있습니다.
nasm -f elf "$filename.asm"
ld -s -o "$filename" "$filename".o io.o
답변2
이 특별한 대답Stack Overflow에 대한 비슷한 질문이 잘 생각된 것 같습니다. 여기에는 점이 없는 파일("somefile")과 점이 여러 개 있는 파일("somefile.tar.gz")을 처리하는 논리가 포함되어 있습니다.