как я могу запустить файл сценария оболочки в Linux?

#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. Пожалуйста, добавьте некоторые пояснения к вашему ответу, чтобы другие могли извлечь из него уроки