0 votes

Comment créer un script avec la multi commande

J'ai essayé de créer un script sous OS X. Je fais quelque chose de mal. Je veux exécuter 2 commandes :

defaults write com.apple.finder CreateDesktop -bool true

y

killall Finder

J'ai sauvegardé et chmodé le fichier mais j'ai eu des erreurs :

/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

Merci pour votre aide !

3voto

markhunte Points 11634

Vous avez enregistré votre fichier en tant que fichier Rich Text Format (.rtf).

Dans TextEdit.app

Ouvrez votre fichier et utilisez le menu "Make Plain Text" pour le transformer en format correct pour le codage.

Si vous utilisez autre chose que du texte plan, le fichier comprendra du code de formatage pour les styles et autres, qui sera visible par la couche shell mais pas par l'utilisateur lorsqu'il visualisera le fichier.

Par exemple.

Un fichier Rich Text Format dont l'extension a été modifiée reste un fichier Rich Text.

enter image description here


En le lisant depuis la ligne de commande.

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

Changez en texte brut et réenregistrez.

enter image description here


enter image description here


Lire à partir de la ligne de commande.

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

(les exemples ne sont donnés qu'à titre d'illustration et ne représentent pas le codage réel).

-1voto

Tony Maro Points 126

Si vous avez juste besoin d'exécuter deux commandes quelconques via un script, vous pouvez simplement créer quelque chose comme ceci, ouvrir un éditeur de texte et ajouter :

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

Enregistrez-le en tant que foo.sh, puis :

$ sh ./foo.sh
foo
bar

En && vous permet d'avoir deux commandes exécutées l'une après l'autre, ou vous pouvez simplement mettre les commandes sur des lignes différentes.

Dans votre cas, remplacez echo foo con defaults write com.apple.finder CreateDesktop -bool true et remplacer echo bar con killall Finder . Vous aurez probablement besoin d'exécuter foo.sh avec des privilèges élevés en utilisant $ sudo sh ./foo.sh puisque vous changez les valeurs par défaut et que vous détruisez les pids.

Vous devrez peut-être aussi le rendre exécutable :

chmod +x foo.sh

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X