Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash脚本创建混合iso生成“;意外的文件结尾”;_Linux_Bash_Scripting_Iso - Fatal编程技术网

Linux Bash脚本创建混合iso生成“;意外的文件结尾”;

Linux Bash脚本创建混合iso生成“;意外的文件结尾”;,linux,bash,scripting,iso,Linux,Bash,Scripting,Iso,我创建了一个简单的bash脚本,它创建了一个混合iso。但当我尝试运行它时,我得到了输出: hybridiso.sh: line 58: syntax error: unexpected end of file. 我检查了脚本并试图对其进行更改,但仍然得到相同的输出。剧本怎么了 #!/bin/bash ##Sanity Cheks## if [ "$(whoami)" != root ]; then echo "You must be root to execute this scr

我创建了一个简单的bash脚本,它创建了一个混合iso。但当我尝试运行它时,我得到了输出:

hybridiso.sh: line 58: syntax error: unexpected end of file.
我检查了脚本并试图对其进行更改,但仍然得到相同的输出。剧本怎么了

#!/bin/bash

##Sanity Cheks##
if [ "$(whoami)" != root ]; then
    echo "You must be root to execute this script."
fi

if [ ! -x /usr/bin/xorriso ]; then
    echo "xorriso is not installed. Run 'apt-get install xorriso' to install it."
exit 1
fi

if [ ! -x /usr/bin/live-build ]; then
    echo "live-build is not installed. Run 'apt-get install live-build' to install it."
exit 1
fi

if [ ! -x /usr/bin/syslinux ]; then
    echo "syslinux is not insatlled. Run 'apt-get install syslinux' to install it."
exit 1
fi

if [ ! -x /usr/bin/mksquashfs ]; then
    echo "squashfs-tools is not installed. Run 'apt-get install squashfs-tools' to install it."
exit 1
fi
###############

mkdir $PWD/hybridiso
cd hybridiso
mkdir -p binary/live && mkdir -p binary/isolinux
read -e -p "Enter local file path for linux kernel " kernel
read -e -p "Enter local file path for initrd " initrd
cp $kernel binary/live/ && cp $initrd binary/live/
#mksquashfs chroot binary/live/filesystem.squashfs -comp xz -e boot
cp /usr/lib/syslinux/isolinux.bin binary/isolinux/
cp /usr/lib/syslinux/menu.c32 binary/isolinux/
while true; do
read -p "Do you have an isolinux.cfg? " resp
if [ $resp -eq no ]; then
    echo "You need to create a valid isolinux.cfg file!"
    echo "Creating example file $PWD/isolinux.cfg.example"
    echo -e "ui menu.c32\nprompt 0\nmenu title Boot Menu\ntimeout 300\n\n\nlabel live-amd64\n       menu label ^Live (amd64)\n       menu default\n       linux /live/linux\n        append initrd=/live/initrd.gz boot=live persistence quiet\n\n\nlabel live-amd64-failsafe\n        menu label ^Live (amd64 failsafe)\nlinux /live/linux\nappend initrd=/live/initrd.gz boot=live persistence config memtest noapic noapm nodma nomce nolapic nomodest nosmp nosplash vga=normal\n\n\nendtext" >> isolinux.cfg.example
exit 1
elif [ $resp -eq yes ]; then
    break
else
    "Put only in yes or no"
fi

read -e -p "Enter local file path for isolinux.cfg" isolinux
cp $isolinux binary/isolinux/

xorriso -as mkisofs -r -J -joliet-long -l -cache-inodes -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -partition_offset 16 -A "Debian Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o kiosk.iso binary

echo "Script is succesfull!"
exit 0

您没有在
done
任何地方终止
while
循环;在适当的位置添加
done

脚本中的
while
循环未终止。因此,这是一个错误。在适当的位置使用
done
终止。我真是太尴尬了。谢谢