| Re: lug-bg: schupena samba...?
 
Subject: Re: lug-bg: schupena samba...?From: Peter Pentchev <roam@xxxxxxxxxxx>Date: Wed, 15 Sep 2004 17:59:21 +0300 
 On Wed, Sep 15, 2004 at 05:10:04PM +0300, Vasil Kolev wrote:
> На ср, 2004-09-15 в 14:59, Georgi Chorbadzhiyski записа:
> > В този случай:
> > 
> > (echo $PASS ; echo $PASS) | smbpasswd -a -s $user
> 
> Ало, ще ти пишем ниска оценка по scripting... :)
> Не е ли по-чисто така:
> echo -ne "$PASS\n$PASS\n" | smbpasswd -a -s $user
Зависи :)  Най-чистият възможен вариант е:
  echo -e "$PASS\n$PASS"
Като оставим настрана въпроса, че echo -n "...\n" няма *никакъв* смисъл,
проблемът с това е, че не е много стандартизирано :(  POSIX и Standard
Unix Specification казват, че не е задължително echo(1) изобщо да приема
каквито и да е опции.  Различните шелове имат съвършено различни
разбирания за това кое как трябва да приемат като опции.  Предполагам,
че като си го писал това, си имал предвид bash-2; да, той приема -ne,
-en, -e -n, -n -e, и както още решиш да го напишеш.  FreeBSD /bin/sh
обаче изрично казва в manual page, че може да използваш *само една* от
опциите: или -e, или -n, но не и двете :)  tcsh пък е съвсем башка шел:
за интерпретация на опциите на echo има значение и променливата
echo_style, която може да е 'bsd', 'sysv', 'both' или 'none', и при
всеки от вариантите полудяваш по различен начин...
Най-*сигурният* вариант, който ще работи при всички шелове, е точно
това, което Жоро предложи: (echo $PASS; echo $PASS) | foo.
Поздрави,
Петър
-- 
Peter Pentchev	roam@xxxxxxxxxxx    roam@xxxxxxxx    roam@xxxxxxxxxxx
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
If wishes were fishes, the antecedent of this conditional would be true.
 Attachment:
pgpGVc7fuea0I.pgpDescription: PGP signature
 
 
   |