LINUX.ORG.RU

История изменений

Исправление 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

Заданы. Зачем мне пробовать, ведь я читал мануал и знаю, что я не могу присвоить им значения. Это аргументы командной строки для скрипта, который ты пишешь.

Почитай всё-таки что-нибудь, хотя бы самую базу. Вот так вслепую тыкаться — охренеешь.