LINUX.ORG.RU

/bin/sh очень просто скипт


0

0

есть код
#!/bin/sh


if[ -f /sbin/iptables ];
then
echo '1'
echo '2'
echo '3'
else
echo '4'
echo '5'
fi
echo 'hi'


vladka@blackICE:/home/vladka/iptables# ./test
./test: line 4: if[ -f /sbin/iptables ]: No such file or directory
./test: line 5: syntax error near unexpected token `then'
./test: line 5: `then'
vladka@blackICE:/home/vladka/iptables#

вопрос что не так ?

Bash Version: 3.1
Patch Level: 17
Release Status: release

help


[ это не скобка синтаксиса, это просто синоним команды test, поэтому как и любая команда должна отделяться.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Ни какого синонима [ & test это разные программы.
vitus@[vitus.ac-sw.lcl]:/tmp> ll /usr/bin/test
-rwxr-xr-x 1 root root 22760 2007-01-31 00:51 /usr/bin/test
vitus@[vitus.ac-sw.lcl]:/tmp> ll /usr/bin/[
-rwxr-xr-x 1 root root 24752 2007-01-31 00:51 /usr/bin/[

vtVitus ★★★★★
()
Ответ на: комментарий от vtVitus

идеологически одно и тоже. на БСД это хардлинки на один код.

А так -- в баше это вообще built-in

dilmah ★★★★★
()
Ответ на: комментарий от vtVitus

На попавшейся под руку 8.1 слаквари ;-)

$ ls -la `which test` `which [` lrwxrwxrwx 1 root root 4 Jan 30 2005 /usr/bin/[ -> test* -rwxr-xr-x 1 root bin 16304 Feb 19 2002 /usr/bin/test*

В убунте 7.04 это зачем-то сделано не так, но это какой-то выпендреж. "man [", тем не менее, там тоже говорит в заголовке "TEST(1)"

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.