ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Sergey Vlasov <vsu@altlinux.ru>
To: devel@lists.altlinux.org
Subject: Re: [devel] [git update] packages/alterator-ovz: heads/master
Date: Sun, 11 Mar 2007 19:20:06 +0300
Message-ID: <20070311162006.GC3952@procyon.home> (raw)
In-Reply-To: <20070311150743.GD30166@basalt.office.altlinux.org>

[-- Attachment #1: Type: text/plain, Size: 1218 bytes --]

On Sun, Mar 11, 2007 at 06:07:43PM +0300, Dmitry V. Levin wrote:
> Проверка на численное значение вида [0-9]* не очень хороша тем, что
> 3foo подходит под эту проверку, но при этом не является числом.
> 
> В /usr/bin/hsh-sh-functions есть специальная функция, используемая
> для проверки численного значения ключа:
> 
> opt_check_number()
> {
> 	[ -z "$(printf %s "$2" |tr -d '[0-9]')" ] &&
> 		[ "$2" -gt 0 ] 2>/dev/null ||
> 		Fatal "$1: $2: invalid number."
> 	printf %s "$2"
> }
> 
> По аналогии get_veid можно переписать так:
> 
> get_veid()
> {
> 	local name="$1"; shift
> 	[ -n "$name" ] || return 1
> 	if [ -z "$(printf %s "$name" |tr -d '[0-9]')" ] &&
> 	   [ "$name" -gt 0 ] 2>/dev/null; then

В принципе можно выполнить подобную проверку и без порождения
дополнительных процессов:

	if [ -n "${name##*[!0-9]*}" ] &&
	   [ "$name" -gt 0 ] 2>/dev/null; then

Однако оба варианта всё равно пропускают строки, начинающиеся с 0,
которые могут затем быть интерпретированы как восьмеричные числа
(либо как ошибочные, если далее в строке встречаются 8 или 9).

> 		echo "$name"
> 	else
> 		vzlist -aH -oveid,name |
> 			awk "-vname=$name" '$2==name{print $1;exit}'
> 	fi
> }

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2007-03-11 16:20 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-11 15:07 ` Dmitry V. Levin
2007-03-11 16:20   ` Sergey Vlasov [this message]
2007-03-11 18:37     ` Dmitry V. Levin
2007-03-11 18:46   ` Eugene Ostapets
2007-03-11 19:02     ` Sergey Vlasov
2007-03-11 20:24       ` Eugene Ostapets

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070311162006.GC3952@procyon.home \
    --to=vsu@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git