¿Cómo puedo crear un script con varios comandos?

0

Intenté crear un script en OS X. Hago algo mal. Quiero ejecutar el comando 2:

defaults write com.apple.finder CreateDesktop -bool true

y

killall Finder

Guardé y modifiqué el archivo, pero obtuve 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

¡Gracias por tu ayuda!

    
pregunta max 06.04.2015 - 06:04

2 respuestas

3

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

En TextEdit.app

Abra su archivo y use el menú Crear texto sin formato para cambiarlo al formato correcto para la codificación.

El uso de un texto distinto al plan significará que el archivo incluye el código de formato para los estilos y que es visible para la capa de shell, pero no para el usuario cuando se ve el archivo.

Por ejemplo.

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

Leyéndolodesdelalíneadecomandos.

$catfoo.command

{\rtf1\ansi\ansicpg1252\cocoartf1344\cocoasubrtf720{\fonttbl\f0\fnil\fcharset0Menlo-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\kerning0defaultswritecom.apple.finder\cf4\expnd0\expndtw0\kerning0CreateDesktop\cf2\expnd0\expndtw0\kerning0-booltrue}

Cambiaatextoplanoyvuelveaguardarse.

Lee desde la línea de comando.

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

(los ejemplos son solo para ilustración y no para hacer la codificación real)

    
respondido por el markhunte 06.04.2015 - 07:41
-1

Si solo necesitas ejecutar dos comandos a través de un script, puedes crear algo como esto, abrir un editor de texto y agregar:

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

Guárdalo como foo.sh, luego:

$ sh ./foo.sh
foo
bar

El && le permite ejecutar dos comandos, uno tras otro, o simplemente puede colocar los comandos en líneas diferentes.

En su caso, reemplace echo foo con defaults write com.apple.finder CreateDesktop -bool true y reemplace echo bar con killall Finder . Probablemente deba ejecutar foo.sh con privilegios elevados usando $ sudo sh ./foo.sh , ya que está cambiando los valores predeterminados y eliminando pids.

Es posible que también tengas que hacerlo ejecutable:

chmod +x foo.sh

Consulte enlace

    
respondido por el Eric Dorsey 06.04.2015 - 07:52

Lea otras preguntas en las etiquetas