kali linux docker镜像构build脚本失败 – 语法错误附近的意外标记`;&'

据官方网站介绍:

官方-卡利Linux的搬运工图像

#!/bin/bash # Install dependencies (debbootstrap) sudo apt-get install debootstrap # Fetch the latest Kali debootstrap script from git curl "http://git.kali.org/gitweb/?p=packages/debootstrap.git;a=blob_plain;f=scripts/kali;hb=HEAD" > kali-debootstrap &&\ sudo debootstrap kali ./kali-root http://http.kali.org/kali ./kali-debootstrap &&\ # Import the Kali image into Docker sudo tar -C kali-root -c . | sudo docker import - kalilinux/kali &&\ sudo rm -rf ./kali-root &&\ # Test the Kali Docker Image docker run -t -i kalilinux/kali cat /etc/debian_version &&\ echo "Build OK" || echo "Build failed!" 

 $ ./kali_linux_docker.sh Reading package lists... Done Building dependency tree Reading state information... Done debootstrap is already the newest version (1.0.78+nmu1ubuntu1.2). The following packages were automatically installed and are no longer required: linux-headers-4.4.0-53 linux-headers-4.4.0-53-generic linux-image-4.4.0-53-generic linux-image-extra-4.4.0-53-generic Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 315 not upgraded. ./kali_linux_docker.sh: line 5: syntax error near unexpected token `;&' ./kali_linux_docker.sh: line 5: `curl "http://git.kali.org/gitweb/?p=packages/debootstrap.git;a=blob_plain;f=scripts/kali;hb=HEAD" > kali-debootstrap &&\' 
  1. 为了什么&& 是为了?
  2. 我该如何解决 ?

他们似乎是一些非法的编码字符,这是搞乱脚本执行,使用sed删除它们

 sed -i.bak -e 's|&|\&|g' -e 's|>|>|g' -e 's|[\r\n]||g' kali_linux_docker.sh 

并照常运行你的脚本

 ./kali_linux_docker.sh 

作为sed一部分,还删除了可能干扰您脚本执行的任何Windows CRLF结尾(如果存在)。

它看起来像脚本通过一个过度热心的HTML编码器,用他们的HTML实体等效物“ & ”和“ > ”代替“ & ”和“ > ”。 你只需要将它们转换回来。 这是我得到的:

 #!/bin/bash # Install dependencies (debbootstrap) sudo apt-get install debootstrap # Fetch the latest Kali debootstrap script from git curl "http://git.kali.org/gitweb/?p=packages/debootstrap.git;a=blob_plain;f=scripts/kali;hb=HEAD" > kali-debootstrap &&\ sudo debootstrap kali ./kali-root http://http.kali.org/kali ./kali-debootstrap &&\ # Import the Kali image into Docker sudo tar -C kali-root -c . | sudo docker import - kalilinux/kali &&\ sudo rm -rf ./kali-root &&\ # Test the Kali Docker Image docker run -t -i kalilinux/kali cat /etc/debian_version &&\ echo "Build OK" || echo "Build failed!"