#bash #shell
#bash #оболочка
Вопрос:
у меня проблема с запуском файла сценария Linux (.sh). Файл выглядит так, как указано ниже: вы можете найти все папки, файлы и код в dosbios-master. файл сценария выглядит так, как указано ниже.
#!/bin/sh
set -e
asm() {
nasm -o $2 $1
}
asm bios/dosbios.asm bios/dosbios.sys
asm boot/mboot.asm boot/mboot.bin
asm boot/boot.asm boot/boot.com
asm util/format.asm util/format.com
asm util/fdisk.asm util/fdisk.com
asm util/reboot.asm util/reboot.com
asm util/mem.asm util/mem.com
asm util/attrib.asm util/attrib.com
#dd if=/dev/null of=dosbios.sys bs=512 seek=9
export MTOOLSRC=mtools.cfg
perl -e 'print chr(0xf6) x 2880 x 512' > disk/newdos.tmp
mformat -m 0xf8 -v DOS a:
mcopy bios/dosbios.sys a:io.sys
mcopy msdos/msdos.sys a:
mcopy msdos/*.com a:
mcopy msdos/*.exe a:
mcopy msdos1/*.com a:
mcopy util/*.com a:
mcopy -a legal/* a:
mcopy -a etc/* a:
mattrib -a s h r a:io.sys
mattrib -a s h r a:msdos.sys
dd status=none if=boot/boot.com of=disk/newdos.tmp
conv=notrunc
mv disk/newdos.tmp disk/newdos.img
как я могу запустить этот сценарий оболочки в Linux. я попробовал дважды щелкнуть, затем ./ genimage, затем «bash genimage.sh «. но я не смог добиться успеха.
как я должен запустить этот файл сценария, и в какой среде или с помощью какой команды.
или с помощью какого инструмента?
Комментарии:
1. Что происходит, когда вы пытаетесь? Установлен ли файл как доступный для выполнения?
2. попробуйте chmod x <имя скрипта>
3. однако bash <имя сценария> должен был сработать. Какую ошибку вы получаете? возможно, скрипт каким-то образом завершается, возможно, в nasm. Не могли бы вы поместить echo в asm ()
4. Кстати.:
sh
( Bourne-shell ) обычно нетbash
( Bourne-again shell ).
Ответ №1:
Попробуйте:
~$ chmod x genimage
~$ ./genimage
Комментарии:
1. Пожалуйста, добавьте некоторые пояснения к вашему ответу, чтобы другие могли извлечь из него уроки