Come posso creare uno script con più comandi

0

Ho provato a creare uno script su OS X. Faccio qualcosa di sbagliato. Voglio eseguire il comando 2:

defaults write com.apple.finder CreateDesktop -bool true

e

killall Finder

Ho salvato e chmod il file, ma ho ricevuto alcuni errori:

/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

Grazie per il tuo aiuto!

    
posta max 06.04.2015 - 06:04
fonte

2 risposte

3

Hai salvato il tuo file come file in formato RTF (.rtf)

In TextEdit.app

Apri il file e utilizza il menu Crea testo normale per cambiarlo nel formato corretto per la codifica.

Usare qualcosa di diverso dal testo del piano significa che il file include il codice di formattazione per gli stili e tale che è visibile al livello della shell ma non all'utente quando visualizza il file.

Ad esempio.

Il file Rich Text Format con l'estensione modificata è ancora un file di testo RTF

Letturadallarigadicomando.

$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}

Passaaltestonormaleevienesalvato.

Leggi dalla riga di comando.

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

(gli esempi sono solo a scopo illustrativo e non su come eseguire la codifica effettiva)

    
risposta data 06.04.2015 - 07:41
fonte
-1

Se hai solo bisogno di eseguire due comandi tramite uno script, puoi semplicemente creare qualcosa come questo, aprire un editor di testo e aggiungere:

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

Salvalo come foo.sh, quindi:

$ sh ./foo.sh
foo
bar

Il && ti permette di eseguire due comandi, uno dopo l'altro, o puoi semplicemente mettere i comandi su linee diverse.

Nel tuo caso, sostituisci echo foo con defaults write com.apple.finder CreateDesktop -bool true e sostituisci echo bar con killall Finder . Probabilmente dovrai eseguire foo.sh con privilegi elevati utilizzando $ sudo sh ./foo.sh poiché stai modificando i valori predefiniti e uccidendo i pid.

Potrebbe essere necessario renderlo eseguibile anche:

chmod +x foo.sh

Vedi link

    
risposta data 06.04.2015 - 07:52
fonte

Leggi altre domande sui tag