История изменений
Исправление CrX, (текущая версия) :
Дело в том, что это происходит в аргументах expr. Причём тут wildcards? Приведи пример, где expr будет * считать маской.
Нет, это не происходит в аргументах expr, это происходит до того, как expr вообще о чём-то узнает. В любой команде сначала раскрываются wildcards и переменные, а потом уже получается команда и её аргументы, соответственно. Экранировать модно и не через \
, а беря в одинарные или двойные кавчки (в двойнух перемменные раскрываются, wildcards нетб в одинарных всё как есть остаётся). Собственно для этого в шелле и есть экранировани и кавычки.
У меня они не заданы. И задать их чем-то ещё не получится. Попробуй сам присвоить значение переменной «5» например. У меня не получилось. Делал примерно так: 5=3, 5=test1
Заданы. Зачем мне пробовать, ведь я читал мануал и знаю, что я не могу присвоить им значения. Это аргументы командной строки для скрипта, который ты пишешь.
Почитай всё-таки что-нибудь, хотя бы самую базу. Вот так вслепую тыкаться — охренеешь.
Но если чтение религия запрещает и надо тыкаться, то напиши скрипт:
#!/bin/sh
echo '$1' = $1
echo '$2 =' $2
echo '$3' = $3
echo '$4' = $4
echo '$5' = $5
echo '$6' = $6
echo '$7' = $7
echo '$8' = $8
И позапускай его с разными аргументами.
Например ./scriptname.sh Сорок тысяч Обезьян 'в жопу' сунули банан
.
поймёшь, как работает
P.S. желающим прокричать про «кошмар, можно же циклом, зачем столько копипасты!!!» — для наглядности, в целях обучения
Исправление CrX, :
Дело в том, что это происходит в аргументах expr. Причём тут wildcards? Приведи пример, где expr будет * считать маской.
Нет, это не происходит в аргументах expr, это происходит до того, как expr вообще о чём-то узнает. В любой команде сначала раскрываются wildcards и переменные, а потом уже получается команда и её аргументы, соответственно. Экранировать модно и не через \
, а беря в одинарные или двойные кавчки (в двойнух перемменные раскрываются, wildcards нетб в одинарных всё как есть остаётся). Собственно для этого в шелле и есть экранировани и кавычки.
У меня они не заданы. И задать их чем-то ещё не получится. Попробуй сам присвоить значение переменной «5» например. У меня не получилось. Делал примерно так: 5=3, 5=test1
Заданы. Зачем мне пробовать, ведь я читал мануал и знаю, что я не могу присвоить им значения. Это аргументы командной строки для скрипта, который ты пишешь.
Почитай всё-таки что-нибудь, хотя бы самую базу. Вот так вслепую тыкаться — охренеешь.
Но если чтение религия запрещает и надо тыкаться, то напиши скрипт:
#!/bin/sh
echo '$1' = $1
echo '$2' = $2
echo '$3' = $3
echo '$4' = $4
echo '$5' = $5
echo '$6' = $6
echo '$7' = $7
echo '$8' = $8
И позапускай его с разными аргументами.
Например ./scriptname.sh Сорок тысяч Обезьян 'в жопу' сунули банан
.
поймёшь, как работает
P.S. желающим прокричать про «кошмар, можно же циклом, зачем столько копипасты!!!» — для наглядности, в целях обучения
Исправление CrX, :
Дело в том, что это происходит в аргументах expr. Причём тут wildcards? Приведи пример, где expr будет * считать маской.
Нет, это не происходит в аргументах expr, это происходит до того, как expr вообще о чём-то узнает. В любой команде сначала раскрываются wildcards и переменные, а потом уже получается команда и её аргументы, соответственно. Экранировать модно и не через \
, а беря в одинарные или двойные кавчки (в двойнух перемменные раскрываются, wildcards нетб в одинарных всё как есть остаётся). Собственно для этого в шелле и есть экранировани и кавычки.
У меня они не заданы. И задать их чем-то ещё не получится. Попробуй сам присвоить значение переменной «5» например. У меня не получилось. Делал примерно так: 5=3, 5=test1
Заданы. Зачем мне пробовать, ведь я читал мануал и знаю, что я не могу присвоить им значения. Это аргументы командной строки для скрипта, который ты пишешь.
Почитай всё-таки что-нибудь, хотя бы самую базу. Вот так вслепую тыкаться — охренеешь.
Но если чтение религия запрещает и надо тыкаться, то напиши скрипт:
#!/bin/sh
echo '$1' = $1
echo '$1' = $1
echo '$1' = $1
echo '$1' = $1
echo '$1' = $1
echo '$1' = $1
Исходная версия CrX, :
Дело в том, что это происходит в аргументах expr. Причём тут wildcards? Приведи пример, где expr будет * считать маской.
Нет, это не происходит в аргументах expr, это происходит до того, как expr вообще о чём-то узнает. В любой команде сначала раскрываются wildcards и переменные, а потом уже получается команда и её аргументы, соответственно. Экранировать модно и не через \
, а беря в одинарные или двойные кавчки (в двойнух перемменные раскрываются, wildcards нетб в одинарных всё как есть остаётся). Собственно для этого в шелле и есть экранировани и кавычки.
У меня они не заданы. И задать их чем-то ещё не получится. Попробуй сам присвоить значение переменной «5» например. У меня не получилось. Делал примерно так: 5=3, 5=test1
Заданы. Зачем мне пробовать, ведь я читал мануал и знаю, что я не могу присвоить им значения. Это аргументы командной строки для скрипта, который ты пишешь.
Почитай всё-таки что-нибудь, хотя бы самую базу. Вот так вслепую тыкаться — охренеешь.