1.1, onanim (?), 11:12, 26/11/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
что за конструкция "<(qm list)"?
может, там должно быть "$(qm list)", от того башу и непонятен второй редирекшон?
| |
|
2.2, gg (??), 15:39, 26/11/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
The <(list) syntax is supported by both, bash and zsh. It provides a way to pass the output of a command (list) to another command when using a pipe (|) is not possible. For example when a command just does not support input from STDIN or you need the output of multiple commands:
diff <(ls dirA) <(ls dirB)
| |
|
3.7, ACCA (ok), 06:29, 27/11/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Там проблема не в том, что pipe is not possible, а в том, что
qm list | read id rest
приведёт к дикой проблеме. qm list исполняется в текущем shell. А то, что после pipe - в его форке. Поэтом $id и $rest никак не вернутся в текущий shell.
| |
|
|
1.3, OpenEcho (?), 18:16, 26/11/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Может это qm list хулиганит, a не bash?
'''
#!/bin/bash
read id rest < <( echo "a b"; )
echo "=== as expected ==="
echo "[${id}]"
echo "[${rest}]"
'''
| |
|
2.8, ACCA (ok), 06:33, 27/11/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это тебе повезло, что /bin/bash оказался первым в $PATH.
| |
|
1.4, Аноним (4), 21:07, 26/11/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
чёт не работает:
bash: /tmp/1.sh: cannot execute: required file not found
но, вообще, я находил регрессии в баше (пришлось заменять $() на обратные кавычки в коде чтобы extglob с ?() не отваливался), по-моему, это только в 5.2 на каком-то патче началось.
а, вот, комментарий гласит it's impossible to use ?() inside $() in 5.2_p12 так что могут быть баги баша
| |
1.5, Аноним (5), 21:48, 26/11/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> ирония в том, что /bin/bash и /usr/bin/bash
> - две идентичные копии, даже не симлинк.
А что за система такая чудесатая? Конечно круто глобальные выводы сделать - но например в Debian 12 (и деривативах типа убунт, минтов и проч) - вы не создадите "/bin/bash" даже если бы и сильно захотели. Просто потому что "merged USR" где /bin это symlink -> /usr/bin и соответственно вот именно файлом, вот именно в том пути оно ну никак быть не может, чисто технически.
А вот что за дистро так прикалывается с копиями интерпретеров - имена героев в студию.
| |
|
2.6, ACCA (ok), 06:25, 27/11/2023 [^] [^^] [^^^] [ответить]
| +/– |
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
ProxMox 8.0.3
| |
|
3.17, Аноним (16), 18:09, 19/12/2023 [^] [^^] [^^^] [ответить]
| +/– |
А точно копия? Может, одна версия статически собрана, а другая раздельно?
| |
|
|
1.10, Аноним (10), 01:53, 28/11/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Лечится заменой shebang с #!/bin/bash на #!/usr/bin/bash
В шебанге шелл-скриптов позволительны всего две вещи:
#!/bin/sh -- если это кроссплатформенный скрипт,
#!/usr/bin/env bash -- если нужен именно баш.
/bin/sh прямо упоминается в документации к стандартной библиотеке языка си, поэтому он будет гарантированно существовать. А про /bin/bash таких гарантий нет. Как и для /usr/bin/bash. Поэтому следует использовать /usr/bin/env.
Далее. NixOS для абсолютно минимальной совместимости со скриптами именно эти два файла и оставляет: в папке /bin нет ничего, кроме /bin/sh, а в папке /usr (да, именно в /usr, а не в /usr/bin) нет ничего, кроме /usr/bin/env.
| |
|
2.11, ACCA (ok), 06:37, 03/12/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вот же жопа. Когда-то мы были бандой маргиналов, протестующий против засилья NetWare и MS-DOS.
А теперь стали старыми пердунами. Ты прав, мой собрат препод. Только никто не хочет вспоминать про /usr/bin/env.
| |
|
3.14, Аноним (14), 14:22, 09/12/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Только никто не хочет вспоминать про /usr/bin/env.
Всё кто серьезно с системой работает знают как делать нужно.
Но всё больше "ыкспертов из отрасли", которые получают знания через посты в телеграмме, а не чтение документации.
| |
|
2.18, Аноним (16), 18:12, 19/12/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Эту байку любят рассказывать только в NixOS. Где забили на FHS, и все пути превратили в кашу из хэшей. И теперь страдают. У нормальных людей работает и /usr/bin/bash. И всё гарантируется - правилами пакетирования для сопроводителей и разработчиков дистрибутива.
| |
|
3.19, Аноним (4), 02:05, 03/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
У нормальных людей сработает только /bin/bash, ты палишься. А так, конечно, зависит от того, где планируется запускать, с env не в пример универсальнее.
| |
|
|
1.12, glad_valakas (?), 20:23, 07/12/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> whois bash
which bash
> read id rest < <(qm list)
не знаю что это.
можно в терминах /bin/sh пояснить, для тупых и wannabe-кроссплатформенных ?
| |
|