42shpimanmls / 42sh

Shell project at 42
3 stars 0 forks source link

Expansion #137

Closed lsimonne closed 7 years ago

lsimonne commented 7 years ago

On est d'accord, on va pas jusqu'à faire les arithmetic expansions et compagnie? Juste un implémentation simple de ${parameter} et le pathname expansion (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13_03)?

n0izn0iz commented 7 years ago
lsimonne commented 7 years ago

'$[any number of $]' always results to one '$' , is it a problem ? (in sh $ is actually a variable that returns the pid of the shell)

n0izn0iz commented 7 years ago

je pense qu'il faut gérer $$ (partie variables locales du sujet) Un bon moyen de le faire serait une fonction set_defaultvariables qui setenv("$", pid) et autres "PWD" "SHLVL" et "":

env -i sh
sh-4.4$ env
PWD=/home/n0iz/Projects/42sh
SHLVL=1
_=/usr/bin/env
lsimonne commented 7 years ago

161

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_01

lsimonne commented 7 years ago

en fait c'est chiant le tilde: pour les cas ~login il faut utiliser getpwnam() - man 3 je le fais à moitié? càd juste ~/foo, ~ ? ou pas du tout? ou complètement comme théoriquement c'est du bonus?

M5oul commented 7 years ago

À moitié c’est bien. Je connais pas ~login. Sinon, tant pis si c’est trop chiant et qu’il s’agit d’un bonus.

n0izn0iz commented 7 years ago

a moitié

n0izn0iz commented 7 years ago

on peux faire le ~login a la norme avec read("/etc/passwd") mais osef, go pas le faire

lsimonne commented 7 years ago

169 #170