0 votos

Cómo puedo crear un script con multi comando

He intentado crear un script en OS X. Algo hago mal. Quiero ejecutar 2 comandos:

defaults write com.apple.finder CreateDesktop -bool true

y

killall Finder

He guardado y chmod el archivo pero tengo algunos errores:

/Users/max/Desktop/visible.command ; exit;
MacBook-Pro-de-Maxime:~ max$ /Users/max/Desktop/visible.command ; exit;
/Users/max/Desktop/visible.command: line 1: {rtf1ansiansicpg1252cocoartf1343cocoasubrtf160: command not found
/Users/max/Desktop/visible.command: line 2: syntax error near unexpected token `}'
/Users/max/Desktop/visible.command: line 2: `{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;\f1\fmodern\fcharset0 Courier;}'
logout

output

Gracias por su ayuda.

3voto

Malik hassan Puntos 16

Ha guardado su archivo como un archivo de formato de texto enriquecido (.rtf)

En TextEdit.app

Abra su archivo y utilice el menú "Make Plain Text" para cambiarlo al formato correcto para la codificación.

El uso de cualquier cosa que no sea texto plano significará que el archivo incluye código de formato para estilos y demás, que es visible para la capa del shell, pero no para el usuario al ver el archivo.

Por ejemplo.

El archivo de formato de texto enriquecido con la extensión cambiada sigue siendo un archivo de texto enriquecido

enter image description here


Lectura desde la línea de comandos.

$ cat foo.command

{\rtf1\ansi\ansicpg1252\cocoartf1344\cocoasubrtf720
{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;}
{\colortbl;\red255\green255\blue255;\red43\green39\blue19;\red234\green234\blue234;\red37\green127\blue159;
}
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\deftab720
\pard\pardeftab720

\f0\fs26 \cf2 \cb3 \expnd0\expndtw0\kerning0
defaults write com.apple.finder \cf4 \expnd0\expndtw0\kerning0
CreateDesktop\cf2 \expnd0\expndtw0\kerning0
 -bool true}

Cambiar a texto plano y volver a guardar.

enter image description here


enter image description here


Leer desde la línea de comandos.

$ cat foo.command
defaults write com.apple.finder CreateDesktop -bool true

(los ejemplos son sólo para ilustrar y no cómo hacer la codificación real)

-1voto

Tony Maro Puntos 111

Si sólo necesitas ejecutar dos comandos cualesquiera a través de un script, puedes simplemente crear algo así, abrir un editor de texto y añadir:

#!/bin/bash
echo foo && echo bar

Guárdalo como foo.sh, entonces:

$ sh ./foo.sh
foo
bar

El && le permite tener dos comandos que se ejecutan, uno tras otro, o simplemente puede poner los comandos en diferentes líneas.

En su caso, sustituya echo foo con defaults write com.apple.finder CreateDesktop -bool true y reemplazar echo bar con killall Finder . Probablemente tendrá que ejecutar foo.sh con privilegios elevados utilizando $ sudo sh ./foo.sh ya que estás cambiando los valores por defecto y matando a los pids.

Puede que también tengas que hacerlo ejecutable:

chmod +x foo.sh

Ver https://stackoverflow.com/questions/8409946/how-do-i-make-this-file-sh-executable-via-double-click

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X