The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Не разобрался с подстановкой $@"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Не разобрался с подстановкой $@" +/
Сообщение от михалыч (ok), 08-Июл-17, 18:24 
> Если несколько аргументов у скрипта, то команда с проверкой наличия строки аргументов
> выдаёт сообщение об ошибке
> [ "$@" ] - не работает, пишет "unexpected operator". Но я рассчитывал,
> что раз в кавычках, значит все аргументы будут просто подставлены как
> одна строка.
> Str=$@ ; [ "$Str" ] - работает правильно.
> Люди добрые, объясните пожалуйста, чего я не понял?
> Проверял в sh и в bash.
> Спасибо

я не понял  - чего ты не понял? ))
командный интерпретатор - он такой интерпретатор, одним словом, тот ещё фрукт,
ну вот так вот он интерпретирует ))

а если серьёзно, то зачем вам это?
ну в смысле команда [ ] - это же эквивалент команды test
что собрались протестировать? всю строку из аргументов?

может в вашем случае можно обойтись проверкой общего количества ($#) переданных аргументов
или проверкой какого-то конкретного аргумента, второго там или третьего ($2 $3)

но если сильно хочется из разряда чего-то странного, то можно так

#!/bin/sh

# ./test.sh 1 blah bla2

if [ "$(echo -n $@)" = "1 blah bla2" ] ; then
    echo OK
else
    echo BAD
fi


или, сдаётся мне, это был риторический вопрос ))
if [ $# -eq 0 ] ; then
    echo "enter the arguments"
else
    :
fi

вот так!

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Не разобрался с подстановкой $@, Alexander7, 08-Июл-17, 13:43  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру