Структура трубопровода не допускает времени в середине, только в начале трубопровода.
Кроме того, время является «ключевым словом оболочки», как показано в type time
.
Но ничто не запрещает использовать составные команды (и время каждая):
time comm1 | ( time comm2 )
Таким образом, вы можете обойти, используя подобласть:
echo "12" | ( time python3 -c "a=input("");print(a)" )
Или так:
echo "12" | { time python3 -c "a=input("");print(a)"; }
-121--119211-
Сегодня большинство операционных систем используют метод для общих библиотек, введенный в конце 1987 года SunOS-4.0. Этот метод основан на отображении памяти через mmap ().
Учитывая тот факт, что в начале 1990-х годов Sun даже пожертвовала старый код на основе a.out (Solaris в то время уже базировалась на ELF) людям FreeBSD и что этот код позже был передан многим другим системам (включая Linux), вы можете понять, почему между платформами нет большой разницы.
-121--19683-
Типичная система UNIX не поддерживает макросы mdoc и, если вы хотите писать переносные страницы, не используйте mdoc.
Команда ftp
не позволяет проверить успешность передачи. Если вы должны продолжать использовать эту реализацию FTP-передачи, есть две альтернативы::
ls
в FTP-клиенте и убедитесь, что длина файла соответствует ожидаемой. Имейте в виду, что ls
зависит от сервера и может варьироваться от реализации сервера к реализации. Лучшим решением (, кроме полной замены FTP на rsync
или scp
), является использование другого FTP-клиента, который обеспечивает надежный статус передачи.
#!/bin/bash
tar czf <sourcefile> --directory=<directory> log
lftp -u '<user>,<password>' -e 'put -E <source> -o <target>; quit' "$1"
Команда lftp
должна быть доступна в большинстве дистрибутивов Linux. Флаг -E
настраивает команду put
так, чтобы она действовала больше как mv
, а не как cp
:, удаляя исходный файл после успешной передачи.