Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cat au lieu de less ? #13

Open
axelsimon opened this issue Nov 21, 2017 · 5 comments
Open

Cat au lieu de less ? #13

axelsimon opened this issue Nov 21, 2017 · 5 comments
Labels

Comments

@axelsimon
Copy link

cat (concaténer) est une commande qui certes existe partout mais est nettement moins fonctionnelle que `less.

Y a-t-il une raison d'avoir remplacé cat par less, au-delà de son universalité ?

@luffah
Copy link
Owner

luffah commented Nov 21, 2017

Maintenant que j'y pense peut être que la commande more (plus) est la plus interressante pour faire le job.
J'avais fait la substitution dans un but sémantique et pratique :

  • cat ne comporte que 3 lettres
  • la commande cat affiche directement tout le texte (cela correspond à la manière dont cat et less sont implémentés)
  • la commande cat ne nécessite aucune compétence autre que le shell, tandis que less (moins) s'utilise avec des commandes spécifiques qui ressemble à celle de vi (il faut utiliser 'q' pour quitter et il est possible de faire des recherches avec '/')
  • (au moment de faire cette modification je voulais personnifier les commandes, comme avec grep, il aurait s'agit d'un genre d'invocation en terme vidéo ludique... cat peut être personnifier en chat, less c'est plus compliqué)

@ludogre
Copy link

ludogre commented Dec 30, 2017

cat me semble pertinent au vu de comment ça fonctionne actuellement dans le jeu, pour rester fidèle à un terminal.
Par contre, sur l'idée de dialogue en multipliant les 'cat', je suis plus sceptique parceque justement, ça s'éloigne du fonctionnement normal d'un terminal, et aussi, que je m'en suis aperçu tard en jouant, parceque justement, ça ne me paraissait pas naturel que deux 'cat' d'affilés sur un fichier puissent donner deux résultats différents.

@luffah luffah added enhancement ideo por efektivigi idea para implementar labels Feb 1, 2022
@luffah
Copy link
Owner

luffah commented Feb 1, 2022

Peut être faire un cat non interactif effectivement… juste du texte...
et pour les interactions trouver une parade e.g. faire comme si on avait à faire à un programme ou ajouter des mots clefs de point'n'click.

L'idée est de faire un jeu pas un bac à sable.

@ludogre
Copy link

ludogre commented Feb 2, 2022

En y re-réfléchissant à cette occasion, on pourrait aussi imaginer que c'est à des fichiers de logs qu'on a à faire lorsqu'il s'agit d'"interactions".
Si du nouveau contenu (mais ajouté à l'ancien) apparaît à chaque exécution de cat sur un fichier, on est bien dans la logique du fichier de logs.
On pourrait imaginer qu'on puisse également interroger les fichiers avec tail, et que, quand il s'agit de fichiers de logs, la commande renvoie la suite de la conversation à chaque fois qu'elle est lancée.

@luffah
Copy link
Owner

luffah commented Feb 2, 2022

Ça peut le faire dans certains cas, par exemple si on met l'idée un envoi du courrier (un fichier est écrit -action ou pas-> un autre fichier est écrit).

# exemple sur le pont après l'avoir réparé
$ cat remerciements.log
> Merci d'avoir réparé le pont. Tiens voici mon adresse, je voudrais t'offrir un cadeau.

# exemple avec l'artiste très occupé
$ ./Artiste
> laisse moi tranquille, je suis occupé

$ cat Arstiste.log
> Une note a été laissée : "J'ai besoin 5 rouages, quelqu'un utilisant 'touch' devrait s'en sortir"

$ touch rouages{1,2,3,4,5}

$ cat Artiste.log
> Une note a été laissée : "À la personne qui m'a fait ces 5 rouages : je t'autorise à ouvrir le clapet de ma sculpture-horloge."

$ ./Horloge
> ('date' est maintenant utilisable) 
>  Il est 13h30 !

Je n'ai pas trop envie de généraliser ça au risque de perdre le coté 'interface avec le monde' que sont les êtres qui peuple l'univers virtuel. L'idée de programme me semble assez pertinent dans certain cas.

# exemple dans le marché

$ ./Marchand
> (interface de choix des trucs échangeable)
> (pas de monnaie)

$ ls
Marchand
SacÀdos.zip
SacÀdos.log

$ cat SacÀdos.log
(Indice pour utiliser la commande 'unzip' présente depuis le début)

$ unzip SacÀdos.zip
$ ./Marchand
> (choix des trucs échangeables)

# exemple dans la bibliotheque
$ ./Grep
> … bla bla …
> Grep s'est auto-installé dans le système en tant que 'grep'

$./Grep -h
> grep motif fichier

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants