Не используйте переменные среды вообще. Используйте файлы.
Чтобы препятствовать тому, чтобы процессы ступили друг на друга при обновлении/чтении файла, используйте lockfiles и маленький фронтенд updater сценарии, цель которых просто обновляет файл с 1$, если это не заблокировано. Lockfiles реализованы, в основном проверив, существует ли определенный файл (/var/run/yourscript.lck) и если он делает, ожидает файла, чтобы исчезнуть некоторое время, и перестать работать, если он не делает. Также необходимо удалить lockfile, сделано обновив файл.
Будьте готовы обработать ситуацию, где сценарий не может обновить файл, потому что файл занят.
В основном, если Вы хотите сделать вещи литерал с этими странными символами, необходимо выйти из него. В оболочке существует несколько способов сделать это. Первый должен предварительно ожидать '\' к каждому символу, из которого Вы хотите выйти. Таким образом, можно сделать rm \$file
. Иначе должен заключить им в кавычки с одинарными кавычками, например, rm '$file'
или rm '$'file
. Некоторые люди также полагают, что двойные кавычки как среднее "выходят", но это только выходит из пробелов. Например, если Вам назвали файл a file
, можно сделать
rm a\ file
или
rm 'a file'
или
rm "a file"
Если Вы когда-нибудь случайно создаете названный файл -rf
, можно использовать rm -- -rf
удалить его.
--
опция была создана; удалить файлы, которые были бы иначе взяты в качестве опций. С другой стороны, Вы могли протестировать его с совершенно новым каталогом, названным '-rf': rm -- -rf
должен дать Вам ошибку о том, чтобы быть каталогом.
– Kevin M
02.06.2011, 18:59
--
...? А-ч, без проблем: rm -- --
– Volker Siegel
09.10.2014, 06:41
Можно также сделать
rm '$file'
Материал в одинарных кавычках всегда берется в качестве литерала, таким образом, шарики и переменные не становятся расширенными.
Любой менеджер по графическому файлу должен смочь обработать это через контекстное меню, потому что оно не пытается интерпретировать что-либо.
Некоторые способы избавления от файлов со странными именами заключаются в использовании подстановки (т. е., rm ?file
если первый символ является чем-то странным, но это также уничтожит Xfile
, нужно быть осторожным, чтобы не совпадать слишком много, проверьте с echo
заранее )и/или используйте интерактивный флаг:rm -i *file
запросит все вещи, называемые что-то file
, если вы хотите их удалить.
-i
переключатель (интерактивный, таким образом, Вам предлагают перед заключительным удалением) в этом случае... – jasonwryan 02.06.2011, 06:40