Как несколько команд задаются для ex из командной строки?

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

иногда можно обойтись сим-связкой более новой библиотеки со старым именем, и двоичный файл будет пытаться использовать эту библиотеку.

однако это не означает, что двоичный файл будет поддерживать эту версию. Некоторые функции могут быть изменены, некоторые функции удалены или добавлены, и так далее.

Поэтому я бы предложил перекомпилировать бинарник с более новой версией библиотеки, несовместимость будет отмечена во время компиляции.

Вы можете посмотреть зависимости библиотек с помощью ldd.

Пример;

$ ldd /bin/ls
    linux-vdso.so.1 (0x00007ffc65ff3000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f9033f91000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9033bf1000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f9033979000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9033771000)
    /lib64/ld-linux-x86-64.so.2 (0x0000558f25845000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9033551000)

Edit: ps... вы не можете просто скопировать все библиотеки, так как у них есть свои собственные зависимости. вашей машине для кросс-компиляции понадобятся схожие версии библиотек для компиляции.

2
15.06.2017, 01:16
3 ответа

Я делал глупые ошибки. Как предлагает @Jeff Schaller выше, несколько приглашений -c позволят использовать несколько команд. Итак, мой рабочий пример выглядит так.

ex -c 'normal! 2gg19|^V49gg59|y' -cwq geom.inc

Когда я вхожу в режим ex (ex), запрашиваю команду (-c), определяю блок («normal! 2gg19|^V49gg59|y», где normal! позволяет использовать обычные команды vi, 2gg19| означает переход к 2-я строка и 19-й столбец, ^V входит в визуальный блок, 49gg59| перемещается в 49-ю строку и 59-й столбец, а y восстанавливает блок) и предлагает другую команду для записи и выхода (-cwq).

2
27.01.2020, 21:58

Просто добавьте команду 'x' или 'wq' в конце

ex -c execute 'normal! 2gg19|^V49gg59|y|x' geom.inc
1
27.01.2020, 21:58

Я склонен передавать команды, например.:

$ echo '
  0r !seq 10
  w test
' | ex
$ cat test
1
2
3
4
5
6
7
8
9
10
1
27.01.2020, 21:58

Теги

Похожие вопросы