|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Maxim Razin 2:4641/178.256 01 Jun 2003 12:37:38 To : Valentin Nechayev Subject : Re: [[b]a]sh, '$@' без кавычек -- признак ошибки --------------------------------------------------------------------------------
01 Jun 03 10:47, Valentin Nechayev wrote to Aleksey Cheusov:
VN> Опять-таки, это причина ставить кавычки, но не дописывать 'x'
VN> спереди.
Hо даже это не всегда помогает, по крайней мере, с bash. Результат
эксперимента:
~$ touch "="
Пробуем test, встроенный в bash
~$ test -f = ; echo $?
0
~$ test -f = -f ; echo $?
0
Итак, фюрер думает за нас, выбирая из унарного и бинарного оператора более
"подходящий". Попробуем его слегка озадачить:
~$ test -r = -a -w = ; echo $?
test: too many arguments
2
Дело в том, что первые три слова он воспринимает как сравнение:
~$ test -r = -a
1
Предположим, что file="=". Тогда безобидная команда приобретает интересный
смысл.
~$ test -r "$file" -a -w "$file"; echo $?
test: too many arguments
2
~$ bash --version
GNU bash, version 2.05a.0(1)-release (i686-pc-linux-gnu)
Copyright 2001 Free Software Foundation, Inc.
Попробуем теперь /usr/bin/test
~$ /usr/bin/test -f = ; echo $?
0
и т.д. дает идентичные результаты
~$ /usr/bin/test --version
test (GNU sh-utils) 2.0.11
Written by FIXME: ksb and mjb.
Copyright (C) 2000 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Воистину искусственный интеллект давить :)
Regards,
Maxim
--- Msged/LNX 6.0.1
* Origin: Too lazy to change a newsreader (2:4641/178.256)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/46943ed9f70b.html, оценка из 5, голосов 10
|