Acabo de escribir una herramienta simple de línea de comandos que funciona bien con swift
pero no se ejecuta como ejecutable después de chmod +x ...
Esto está sucediendo en mi sistema, por lo que podría estar relacionado con la configuración pero no estoy seguro de cómo resolverlo.
Crear script:
vi test.swift
Ingrese el contenido:
import Foundation
print("¡Hola, Mundo!")
Al ejecutar normalmente swift test.swift
obtengo ¡Hola, Mundo!
como se esperaba, pero cuando lo hago ejecutable y lo ejecuto, falla.
Hacerlo ejecutable:
chmod +x test.swift
./test.swift
Salida:
Versión: ImageMagick 7.1.0-52 Q16-HDRI aarch64 20549 https://imagemagick.org
Derechos de autor: (C) 1999 ImageMagick Studio LLC
Licencia: https://imagemagick.org/script/license.php
Características: Cifrado DPC HDRI Módulos OpenMP(5.0)
Delegados (integrados): bzlib fontconfig freetype gslib heic jng jp2 jpeg lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib
Compilador: gcc (4.2)
Uso: importar [opciones ...] [ archivo ]
Ajustes de imagen:
-adjoin unir imágenes en un solo archivo multiimagen
De forma predeterminada, 'archivo' se escribe en el formato de imagen MIFF. Para
especificar un formato de imagen específico, preceda el nombre de archivo con un nombre de formato de imagen y dos puntos (es decir, ps:imagen) o especifique el tipo de imagen como sufijo del nombre de archivo (es decir, imagen.ps). Especifique 'archivo' como '-' para
entrada o salida estándar.
import: el soporte de biblioteca delegada no está integrado '' (X11) @ error/import.c/ImportImageCommand/1297.
./test.swift: línea 3: error de sintaxis cerca del token inesperado `¡Hola, Mundo!"'
./test.swift: línea 3: `print("¡Hola, Mundo!")'
¿Por qué está ejecutando la herramienta de línea de comandos imagemagick
?
0 votos
¿El comando cat ./test.swift muestra el archivo esperado?
0 votos
@mmmmmm Sí,
cat
muestra el contenido como se esperaba.0 votos
También, tu archivo
test.swift
no tiene una línea #!. Lo necesitas cuando quieras ejecutar el programa como./test.swift
. Por lo tanto, se ejecuta el comando externoimport
.