Попробуйте FBReader. Это загружает последнюю страницу, которую Вы читали по умолчанию, и вероятно имеет все функции, которые Вы могли хотеть. Это - спокойное приложение (и в новинку для рабочего стола Linux), но я использовал его в течение нескольких лет на Android, и это сохраняет улучшение.
Это - открытый исходный код, читает много форматов файлов, поддерживает закладки, локальные / интернет-каталоги, и имеет много опций настройки. Недавно установленный это на моем Gnome рабочий стол Shell и это интегрируются довольно хорошо с UI.
Вы могли бы использовать этот синтаксис, который не требует $
быть оставленным в отличие от Вашего здесь попытка документа.
#!/bin/bash
bash -c '
IMPORTS=$(find /tmp/foo -type f -name .project)
for item in ${IMPORTS[*]};
do
IMPORT="$(dirname $item)/"
echo $IMPORT
done
'
Вот более устойчивый путь (благодаря комментарию Gilles, предлагающему это), который имеет преимущество, чтобы позволить одинарным кавычкам присутствовать во встроенном сценарии:
#!/bin/bash
bash <<"%EOF%"
IMPORTS=$(find /tmp/foo -type f -name .project)
for item in ${IMPORTS[*]};
do
IMPORT="$(dirname $item)/"
echo $IMPORT
done
%EOF%
Примечание: нет никакого способа предотвратить кого-то для использования другой оболочки, чем та, указанная с хижиной. При записи портативного сценария (т.е. POSIX) сценарий не гарантирует, что будет работать с /bin/sh
на каждой платформе, поскольку sandard не передает под мандат оболочку POSIX для использования этого пути.
Вы могли проверить из сценария если bash
используется. В противном случае замените текущую оболочку bash
. Если это перестало работать, прервите сценарий.
[ -z $BASH ] && { exec bash "$0" "$@" || exit; }
Это гарантировало бы, что сценарий может только быть выполнен с помощью bash
. (Вы могли бы хотеть заменить полный путь к bash
в команде выше.)
Обратите внимание, что, как указано @Gilles и, как отмечено в следующем комментарии, это должно быть первой строкой в сценарии.
exec
. Для автономного сценария Вы только запустили бы с #!/bin/bash
или #!/usr/bin/env bash
.
– Gilles 'SO- stop being evil'
11.02.2014, 23:22
/bin/sh
на самом деле удар затем $BASH
будет иметь значение. Так использование -z
не достаточно.
– bahamat
12.02.2014, 00:32
/bin/sh
на самом деле bash
возможности состоят в том, что не будет никакой проблемы в использовании удара определенные конструкции.
– devnull
12.02.2014, 01:10
bash
имеет некоторые поведенческие различия при вызове как sh
. Я предполагаю, что это действительно зависит от того, имеет ли это значение.
– bahamat
12.02.2014, 04:00
'
в отрывке удара. Заключенный в кавычки здесь-документ работает лучше. А-ч – Gilles 'SO- stop being evil' 11.02.2014, 23:23