LINUX.ORG.RU

Сообщения carabo

 

bash: автоматическая подстановка ответов на запросы скрипта

Нужно распаковать несколько запароленных архивов с одинаковыми паролями:

for i in $(ls); do unar $i; done

Распаковщик спрашивает пароль для каждого файла. Можно ли ему указать, что пароль одинаковый для всех файлов?

 

carabo
()

LibreOffice - не работает печать в файл

Система: Fedora 23
Не работает печать в файл *.ps в LibreOffice:

soffice --print-to-file --outdir $dir filename.odt

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

Ошибки в терминал не выводятся.
В Debian 8 это работало, в чем может быть проблема?

 

carabo
()

Автозагрузка - проблема в Xfce, Fedora

Здравствуйте.

Система: Fedora 23, Xfce 4.12

Автоматически стартует аудиоплеер Pragha (был установлен вместе с Xfce), не получается убрать его из автозагрузки.

Проверил:
1. в ~/.config/autostart/ нет ярлыка
2. в меню Настройки - Сеансы и запуск - Автозапуск соответствующей команды нет.
3. в ~/.xinitrc нет

Где еще можно поискать?

 ,

carabo
()

Поднять сетевой интерфейс без прав root

Можно ли поднять (и остановить) сетевой интерфейс eth0 от простого пользователя (даже и без sudo), т.е. без ввода пароля?

 

carabo
()

bash: подстановка

Не могу разобраться с подстановками, прошу помочь.
Есть такой скрипт:

#!/bin/bash

FILE_1="${PWD}/file_1"
FILE_2="${PWD}/file_2"
FILE_3="${PWD}/file_3"

touch "$FILE_1" "$FILE_2" "$FILE_3"

LIST='\
FILE_1
FILE_2'

echo "$LIST" | grep -v '\\' | while read i; do
	echo "\$$i"
	cat "\$$i"
done

Нужно, чтобы он выводил содержимое файлов, указанных в LIST, a в таком виде он выдает:
$ ./script
$FILE_1
cat: $FILE_1: Нет такого файла или каталога
$FILE_2
cat: $FILE_2: Нет такого файла или каталога


Вот это прошу не предлагать:

for i in "$FILE_1" "$FILE_2"; do cat "$i"; done

 

carabo
()

bash: показать предыдущую строку

Нужно в текстовом файле найти регулярное выражение (regexp=«bar») и показать строку (foo), предшествующую той, которая содержит это выражение.
Помогите, пожалуйста.

$ cat file
foo
bar

 

carabo
()

команда cd в скриптах bash

Вопрос только для терпеливых.
На форуме уже обсуждалось, хочу только уточнить: это нормальная ситуация?

Суть вопроса: при использовании в shell-скриптах команды cd она работает, как положено, например:

mkdir d1
cd d1
touch f1

создаст в текущем каталоге подкаталог d1, перейдет в него и создаст там файл f1. Но после завершения работы скрипта текущим каталогом останется прежний каталог.
При этом команда cd в консоли нормально меняет текущий каталог.
Сменить текущий каталог в консоли при помощи скрипта можно либо так:

. scriptname
# или тоже самое:
source scriptname
или так:
cd d1; bash
В последнем случае работа скрипта (т.е. дочернего процесса) не будет завершена, чтобы его завершить надо выполнить 'exit' или нажать Ctrl+D, текущий каталог сменится на первоначальный.

В принципе, все понятно про родительский и дочерний процесс, вот толковое объяснение.
Обратил внимание, что иногда при запуске скриптов, оболочка меняет текущий каталог. Возможно, это связано с импортом других файлов через source.

Спасибо.

 , , ,

carabo
()

home монтируется одновременно в две точки

Раздел /home монтируется одновременно в две разных точки:
собственно /home (физический ж.д. №1) и /mnt/otherhome (физический ж.д. №2)

ж.д. №2 я предполагаю использовать как второй диск для данных, он монтируется в /mnt.

Как это можно исправить?

 

carabo
()

bash: циклы for, while

Приветствую.

В качестве параметров скрипта указываются такие данные (кавычки обязательны):

./scriptname 1 "2 3" 4

Нужно, чтобы вывод был таким:

1
2 3
4
Я пробовал такие 2 варианта:

for i in $(echo $@); do
	echo "$i"
done
echo $@ | while read i; do
	echo "$i"
done

Получается такой вывод:

1
2
3
4
и
1 2 3 4
соответственно.

Прошу помочь.

 

carabo
()

sed, подстановка $a

Подскажите, как правильно подставить в sed выражение $a, $b:

a="что-то"
b="что-то"

echo "текст" | sed 's/$a/$b/'

 

carabo
()

case: неправильно работает внутри функции

Разъясните, пожалуйста, почему так происходит: 1 параметр = «f»

В этом варианте

func () {
case "$1" in
	"f" )
		echo OK
		;;
	* )
		echo "ОШИБКА"
		;;
esac
}

func

echo $1
результат:
ОШИБКА
f

А в этом варианте

case "$1" in
	"f" )
		echo OK
		;;
	* )
		echo "ОШИБКА"
		;;
esac

echo $1
результат:
OK
f

 ,

carabo
()

Подстановка параметра в bash

Пытаюсь сделать такую подстановку, но не выходит:

read a
for i in {$a..10}; do echo $i; done

Помогите исправить, пожалуйста.

 

carabo
()

Проверить в bash: существуют ли все указанные файлы

cat list.txt
a1
b2
c3


Как можно сделать:
если существуют все файлы из списка list.txt, присвоить переменной значение z=0, иначе z=1.
Спасибо.

 

carabo
()

Си, skype

Доброго!

Есть простая программа на Си: проверка пароля, если правильно, запустить скайп с заданным логином-паролем.

Как в программу на Си вставить такой shell-код:

echo login password | skype --pipelogin --secondary &

Смысл в том, чтобы не держать в скрипте пароль в открытом виде.

 ,

carabo
()

поиск и замена текста в файле

Помогите решить задачу, кому не трудно, желательно на bash или python.

Найти в файле file1 куски между символами > и < и имеющие вид:
$$* или $$** где * и ** - одна или две цифры после символа $

и последовательно заменить их на элементы массива случайных текстовых данных, записанных в файл file2:

cat file1

>$$1<случайныйтекст>$$2< ... >$$10<
cat file2

a1
a2
...
a10

Количество тех и других элементов равно.

 

carabo
()

MiniDLNA, проблема с доступом с планшета по wi-fi

На ПК запущен MiniDLNA по этой инструкции http://habrahabr.ru/post/231653/

ПК и планшет подключены к роутеру TP-Link WR741ND.
ОС: Debian 7

В браузере по ip-адрес:port отбражается:.

MiniDLNA status
Audio files: 0
Video files: 0
Image files: 1

.

С планшета не удается получить доступ к папке.

cat /var/log/minidlna.log


Вывод:


[2015/06/17 14:29:09] minidlna.c:155: warn: received signal 15, good-bye
[2015/06/17 14:29:09] minidlna.c:898: warn: Starting MiniDLNA version 1.0.24 [SQLite 3.7.13].
[2015/06/17 14:29:09] minidlna.c:926: warn: Creating new database...
[2015/06/17 14:29:09] scanner.c:727: warn: Scanning /home/main/share_dlna
[2015/06/17 14:29:09] minidlna.c:1006: warn: HTTP listening on port 8200
[2015/06/17 14:29:09] scanner.c:798: warn: Scanning /home/main/share_dlna finished (1 files)!
[2015/06/17 14:29:09] playlist.c:125: warn: Parsing playlists...


Прошу помочь.

 , ,

carabo
()

curl и WebRTC

Возможно ли отключить WebRTC при использовании curl?

 ,

carabo
()

Python: вывод функции в файл

#!/usr/bin/env python
# -*- coding: koi8-r -*-

import ftplib

ftp = ftplib.FTP("ftp.ee.debian.org")
directory = '/debian/dists/stable/main/source'
ftp.login("anonymous", "anonymous")

data = []

f = open('~/list.txt', 'w')

ftp.dir(directory)

ftp.quit()

for line in data:
    print "-", line

f.close()

Данный скрипт нужен для вывода списка файлов в указанном каталоге на ftp в файл list.txt. Функция

ftp.dir(directory)
выводит список файлов в терминал, как направить ее вывод в файл list.txt?

 

carabo
()

php-скрипт, ошибка в if elseif else, прерывание по exit

Ниже приведен php-код страницы, которая обрабатывает форму обратной связи на сайте (на мыло отправляется письмо). Проблема: если капча введена неправильно, выводится сообщение «Капча введена неверно» и все, но письмо все равно отправляется. По идее, работа скрипта должна прерываться командой exit. Возможно, ошибка в использовании exit, возможно в конструкции if elseif else. Помогите, пожалуйста.

if ($_POST['kapcha'] != $_SESSION['rand_code'])
	{
	echo "Капча введена неверно";
	exit(1);
	}

		elseif ($send == 'true')
			{
			echo "<b>Спасибо за отправку вашего сообщения!<p>";
			echo "<a href=index.html>Нажмите,</a> чтобы вернуться на главную страницу";
			}
				
				else
					{
					echo "<p><b>Ошибка. Сообщение не отправлено!";
					}

 

carabo
()

Проблема с добавлением своего пути ~/bin в переменную окружения PATH

Проблема с добавлением своего пути ~/bin в переменную окружения PATH.
Crunchbang 11
Slim из-за тормозов заменен на LightDM. При Slim проблемы не было.

echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Добавляю в PATH ~/bin:
export PATH=/home/myname/bin:$PATH
После этого пользовательские скрипты, лежащие в ~/bin запускаются только из терминала как команды, а в программах dmenu_run и gmrun нет.
После перезагрузки изменение не сохраняется.
Пытался (по отдельности) записывать строки:
export PATH=/home/myname/bin:$PATH
и
PATH=/home/myname/bin:$PATH
в файлы (по очереди):
/etc/profile.local
/etc/profile
/etc/environment
~/.bashrc
~/.bash_profile
~/.profile
~/.xinitrc
в файл /etc/login.defs:
ENV_PATH	PATH=/home/myname/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
не помогло.
Что тут можно еще сделать?

 

carabo
()

RSS подписка на новые темы