[ssfr] Re: [SSFR] Partage de fonctions ... |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
salut Edi,
On Thu, Apr 03, 2008 at 12:22:15PM +0100, Edi Stojicevic wrote:
> newf() {
Je vois ce que ca fait mais pas a quoi ca sert
> lowercase() {
pourquoi tu fais une fonction pour ca ? pourquoi ne pas utiliser (L)
quand tu en a besoin?
> space2underline()
> {
> for a in ./**/*\ *(Dod); do mv $a ${a:h}/${a:t:gs/ /_}; done
> }
tu connais la syntaxe alternative ?
space2underline() {
for f (**/*\ *(Dod)) mv $a ${a:h}/${a:t:gs/ /_}
}
J'aurais tendance a chercher une solution avec zmv mais je ne sais pas
comment il gere le (Dod).
> function kernel()
> {
> printf 'GET /kdist/finger_banner HTTP1.0\n\n' | nc www.kernel.org 80 |
> grep latest
> }
sympa, l'idée d'utiliser nc comme un client http light! du coup, j'ai
regardé du coté du module tcp de zsh et viens de pondre ca:
http_req () {
# usage:
# HTTP_VERSION=1.1 http_req get /
# http_req head /index.html
local eol req
eol="\n"
# real http eol (os independant) eol="\x0d\x0a" only server side ?
# http request must be uppercase
req=${(U)1}
shift
# always send HTTP version (1.0 by default)
print -n -- "$req $* HTTP/${HTTP_VERSION:-1.0}$eol$eol"
}
http_simple () {
# usage:
# http_simple hostname[:port] http_req_params
# default port value is 80
local host port fd
# parse the first arg
IFS=: read host port <<< $1
shift
# try to silently load net/tcp
zmodload zsh/net/tcp 2>/dev/null
# open connection
ztcp $host ${port:-80}
fd=$REPLY
# send http request to connection
http_req "$@" >&$fd
# read the result
cat <&$fd
}
available_kernel_versions () {
http_simple www.kernel.org:80 get /kdist/finger_banner |
sed -n '
s/^The latest //
T
s/\(.*\)is:\s\+\(.*\)/\2 \1/
p
'
}
---