Никакие xauth данные; использование поддельной аутентификации. Не мог отобразить удаленные окна

Можно сделать сценарий или функцию, которая содержит эту команду. Использовать "$1"относиться к первому аргументу передало сценарию или функции.

В Вашем фрагменте кода существует главная ошибка: в зависимости от синхронизации, > file может усечь файл, прежде чем первая команда в конвейере начнет читать файл, или вскоре после того, как это начинает читать. Ваш отрывок может иногда работать с маленькими файлами, но большую часть времени он не будет работать.

Рекомендуемый способ изменить файл состоит в том, чтобы записать в новый временный файл, и после того как это закончено, переместите его для замены старой версии. Таким образом, если что-то плохо, оказывается, прерывает обработку (такую как ошибка, сбой питания, и т.д.), старый файл, остается на месте.

Вот функция, которая воздействует на этот принцип. Благодаря && после конвейера это только перемещает выходной файл в место если command3 возвращается состояние успеха (обратите внимание, что статус возврата других команд в конвейере проигнорирован). Я полагаюсь на общее mktemp утилита для создания временного файла (это гарантирует, что название временного файла не столкнется ни с каким другим экземпляром сценария или любой другой программы).

my_pipeline () {
  out=$(TMPDIR=$(dirname -- "$1") mktemp)
  <"$1" command1 | command2 | command3 >"$out" &&
  mv -f "$out" "$1"
}

Вставьте эту функцию Ваш .bashrc; это будет доступно в следующий раз, когда Вы запускаете удар. Вы можете также вставка копии, определение на командной строке, чтобы иметь ее вступает в силу в той оболочке. Для использования его введите имя функции и затем название файла для действия на:

my_pipeline my_file

Можно сделать функциональное действие на всех его аргументах в свою очередь путем помещения того материала в цикл.

my_pipeline () {
  for file; do
    out=$(TMPDIR=$(dirname -- "$file") mktemp)
    <"$file" command1 | command2 | command3 >"$out" &&
    mv -f "$out" "$file"
  done
}

Использование:

my_pipeline file1 file2 file3

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

#!/bin/sh
for file; do
  out=$(TMPDIR=$(dirname -- "$file") mktemp)
  <"$file" command1 | command2 | command3 >"$out" &&
  mv -f "$out" "$file"
done

Поместите файл в свой путь поиска команды и сделайте его исполняемым файлом (см., Как я могу сделать исполняемый файл программы отовсюду).

Другим способом решить усеченную перед использованием проблему является утилита губки, но эта утилита не доступна везде (это от Debian).

3
07.04.2014, 21:16
1 ответ
[1125889] Я должен был догадаться, но операционная система X не приходит [1126392] с X-сервером. Вам нужно установить свою собственную. После установки [1126394]XQuartz[1126395] можно перезагрузить и проблема исчезнет.[1125890].
0
27.01.2020, 21:44

Теги

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