Size: a a a

2021 April 28

A

Alex in pro.bash
есть скрипт которому я передаю 3 аргумента
- путь к директории
- цифровое значение 1
- цифровое значение 2
мне нужно передать в 1 аргумент не одну, а список директорий
пример:
./my_script.sh /home/user /home/user2 1 2
вопрос как?)
источник

B

BraVo123 in pro.bash
экранировать кавычками
источник

ЖД

Женя Добромильский... in pro.bash
Здравствуйте. Кто-нибудь знает, как через терминал обновить миниатюру одного единственного файла, есть ли такая команда? У меня mate-gtk3. Хочу в thunar действие добавить.
Или, хотя бы, найти по файлу и удалить.
источник

B

BraVo123 in pro.bash
по файлу ты вряд-ли найдёшь, там рандомные имена, проще полностью кеш пересоздать ..
источник

A

Alex in pro.bash
list_args="/usr/local/tmp/upgr/lrs/1.3.0.0.1/rule/default /usr/local/tmp/upgr/lrs/3.0.0/categories/v1 /usr/local/tmp/upgr/lrs/2.3.0.0.2/categories/v2 /usr/local/tmp/upgr/lrs/3.1.0/categories/default /usr/local/tmp/upgr/lrs/3.1.0.5/rule/default 1 0"

re='^.+(?=\s\d\s\d)'
[[ $list_args =~ $re ]]
echo $?

echo ${BASH_REMATCH[1]}
echo ${BASH_REMATCH[2]}

подскажите почему не работает регулярка?
если так то все ок
re='^.+'
источник

Лс

Лень с Самосознанием... in pro.bash
Добавить чтение аргументов
источник

A

Alex in pro.bash
нельзя(
источник

A

Alex in pro.bash
придумал ловить все в переменную и парсить на аргументы
вот похоже в регулярке пробелы не принимаются \s
источник

Лс

Лень с Самосознанием... in pro.bash
Ну тогда только кавычками и потом читать for-ом
источник

🌚

🌚 YupiRex in pro.bash
почему просто не получить вхождения через греп?, например
list_args="/usr/local/tmp/upgr/lrs/1.3.0.0.1/rule/default /usr/local/tmp/upgr/lrs/3.0.0/categories/v1 /usr/local/tmp/upgr/lrs/2.3.0.0.2/categories/v2 /usr/local/tmp/upgr/lrs/3.1.0/categories/default /usr/local/tmp/upgr/lrs/3.1.0.5/rule/default 1 0"
grep -q '/upgr/lrs/' <<< $list_args;  echo $?
источник

A

Alex in pro.bash
с грепом можно же и регулярки использовать?
echo grep -Ei '(^.+(?= \d \d)) <<< $list_args;'
источник

A

Alex in pro.bash
почему так не работает(
tmp=$("$list_args" | grep -Ei "(^.+(?=\s\d\s\d))")
источник

аᶘ

асоциальный пикотран... in pro.bash
Потому что слева от пайпа у тебя набор букв, которые шелл пытается интерпретировать как команду. Тебе нужно echo или printf "%s"
источник

аᶘ

асоциальный пикотран... in pro.bash
→ sh test.sh "/usr/local/tmp/upgr/lrs/1.3.0.0.1/rule/default /usr/local/tmp/upgr/lrs/3.0.0/categories/v1 /usr/local/tmp/upgr/lrs/2.3.0.0.2/categories/v2 /usr/local/tmp/upgr/lrs/3.1.0/categories/default /usr/local/tmp/upgr/lrs/3.1.0.5/rule/default" 1 0
/usr/local/tmp/upgr/lrs/1.3.0.0.1/rule/default
/usr/local/tmp/upgr/lrs/3.0.0/categories/v1
/usr/local/tmp/upgr/lrs/2.3.0.0.2/categories/v2
/usr/local/tmp/upgr/lrs/3.1.0/categories/default
/usr/local/tmp/upgr/lrs/3.1.0.5/rule/default
nums: 1 0

→ cat test.sh
list_args=$1
for i in $list_args; do
   printf "%s\n" "${i}"
done

num1=$2
num2=$3

printf "nums: %d %d\n" "${num1}" "${num2}"
источник

A

Alex in pro.bash
так тоже не работает регулярка!
tmp=$(echo $list_args | grep -Ei "(^.+(?=\s\d\s\d))")
а так норм
tmp=$(echo $list_args | grep -Ei "(^.+))")
источник

A

Alex in pro.bash
спасибо! попробую так
источник

A

Alex in pro.bash
а нет)  нельзя кавычить аргументы
источник

аᶘ

асоциальный пикотран... in pro.bash
ставить между ними запятую можно?
источник

A

Alex in pro.bash
нет, получается только строка
источник

A

Alex in pro.bash
аргумент нельзя в конец поставить
источник