У Вас есть три опции:
1) Эмуляция (вино, перекрестно соедините Linux, Бордо),
2) Виртуализация (VMware Player или VMware Workstation, рабочий стол параллелей, Oracle Virtualbox)
Для разработки C# на Linux Моно Проект является способом пойти. Можно разработать в MonoDevelop IDE, и подключение к SQL Server, размещенному в виртуальной машине с помощью SQL-клиента (для большего количества информации, см.: Моно / ADO.NET, Моно / ODBC, Моно / Доступ к базе данных)
Для получения дополнительной информации о Моно взглянули на Начальную страницу: http://mono-project.com/Start и Моно FAQ Технический, Моно FAQ Общий, Моно ASP.NET FAQ, Моно WinForms FAQ, Моно безопасность FAQ
Также см. их Планы и Дорожную карту
Благодаря Моно проекту можно даже создать приложения с C# для устройств Apple с помощью Монокасания или для Android с помощью Моно-Droid.
Также, если Вы хотите иметь последнюю версию Моно и инструментов, я рекомендую использовать openSUSE, потому что это - первое место, где Вы найдете последние обновления, Моно являющийся проектом поддержанный Novell, который является компанией, которая также спонсирует распределение openSUSE.
Править: (Завершение части Office вопроса)
//Пакеты офисных программ//
1) Lotus Symphony IBM-> http://symphony.lotus.com/software/lotus/symphony/home.nsf/home
2) OpenOffice Oracle-> http://www.oracle.com/us/products/applications/open-office/index.html
3) OpenOffice.org-> http://www.openoffice.org/
4) Office GNOME-> http://live.gnome.org/GnomeOffice
5) Go-oo.org-> http://go-oo.org/
6) SoftMaker Office-> http://www.softmaker.com/english/ofl_en.htm
7) KOffice-> http://www.koffice.org/
//Пакеты офисных программ онлайн//
0) Microsoft Office Онлайн-> http://www.officelive.com/en-us/
1) Приложения Google-> http://docs.google.com/
2) Zoho-> http://www.zoho.com/
3) ThinkFree-> http://thinkfree.com
4) Живые документы-> http://www.live-documents.com/
5) Ajax13-> http://us.ajax13.com/en/
6) ContactOffice-> http://www.contactoffice.com/
7) FengOffice-> http://www.fengoffice.com/web/
8) Zimbra-> http://www.zimbra.com/
Если Вы непосредственно используете строки под a for
цикл, это будет работать на слово (здесь на одном слове: целое содержание $test
так как это заключается в кавычки), не на символ. Необходимо использовать a while
цикл с read
для парсинга побуквенный, или представлять числовой параметр, который выполнил бы итерации по строке.
Кроме того, при использовании read
, необходимо удостовериться, что новые строки и пробелы не интерпретируются как разделители и вызвать read
считать один символ за один раз.
Вот рабочая версия:
#!/bin/bash
test="this is a
test"
printf %s "$test" | while IFS= read -r -N 1 a; do
if [[ "$a" == $'\n' ]] ; then
echo "FOUND NEWLINE"
fi
printf %s "$a"
done
Вы могли заменить $'\n'
с $'\012'
или $'\x0a'
, так как они все представляют тот же код новой строки. Но это не то же как \015
или \r
- это обозначает возврат каретки (возвратитесь к началу строки). В системах Linux новые строки представлены с помощью \n
, но в Windows, например, они представлены последовательностью \r\n
вместо этого. Именно поэтому, если бы у Вас был текстовый файл из Windows, то Вы могли бы обнаружить новые строки также путем поиска \r
.
Можно проверить на новые строки в переменной очень легко в ударе с:
[[ $var = *$'\n'* ]]
Я нахожу более удобным использовать:
declare -r EOL=$'\n' TAB=$'\t' # at top of script
..
if [[ $var = *$EOL* ]]; then # to test (no field-splitting in [[ )
Я предложил бы использовать tr
и затем test
:
if [ -n "$(tr -cd '\n\r' < datafile)" ]; then
echo "NEWLINE FOUND"
fi
tr -cd
удаляет все кроме новых строк/возвратов каретки. Если будут новые строки в файле, то там будет произведен от который -n
тест возвратит true.
\r
s, потому что замена команды удаляет запаздывающие символы новой строки ("$(printf '\n\n\n\n\n')"
пустая строка).
– Stéphane Chazelas
17.05.2015, 23:33
\n
в его представление байта, так, чтобы Вы не должны были помещать ужасно выглядящие, заключенные в кавычки разрывы строки в свой тестовый оператор. – rozcietrzewiacz 22.12.2011, 16:31