stand der Regel:
Code: Alles auswählen
ACTION=="add", ATTR{idVendor}=="8564", ATTR{idProduct}=="1000", RUN+="/opt/FreeFileSync/FreeFileSync"
Code: Alles auswählen
ACTION=="add", ATTR{idVendor}=="8564", ATTR{idProduct}=="1000", RUN+="/opt/FreeFileSync/FreeFileSync"
niemand hat geschrieben:12.12.2018 17:43:55… mich würde nun aber schon interessieren, wer bei dir aus dem " dann das hier falsche “ gemacht hat. Oder aus dem - das hier falsche –. Vielleicht war’s ja ein Feature eines „Tutorial“-Schreibers, der seine Leser vor der fiesen Situation bewahren wollte, durch stumpfe Copypasta am Ende gar nix gelernt zu haben. Wer weiß, wer weiß – ich übernehme die Idee mal so
Ist das verwerflich ? Das Thema hat mich interessiert und da habe ich halt gezielt nach udev Regeln gesucht. Habe mich damit halt noch nicht beschäftigt. Es gibt halt Dinge, die man noch nicht gemacht hat (z.B. Eine Udev- Regel erstellen). Und jetzt bin ich (ein ganz klein Bisschen) schlauer. Schritt für Schritt:willy4711 hat geschrieben:11.12.2018 23:49:53Habe hier eventuell eine Lösung gefunden, die bei mir aber leider mit einer Fehlermeldung endet, die ich nicht verstehe:
https://d0wn.biz/debian-script-ausfuehr ... eckt-wird/
Bin nach der Anleitung dort vorgegangen:
Da kann ich über, da kann ich über!
Code: Alles auswählen
invalid key/value pair in file /etc/udev/rules.d/91-FreeFileSync.rules on line 1, starting at character 1 ('\342')
Code: Alles auswählen
invalid key/value pair in file /etc/udev/rules.d/91-FreeFileSync.rules on line 0, starting at byte 0 ('\342')
Jetzt schon.TRex hat geschrieben:11.12.2018 21:50:54Oh Klasse, ist das der Thread, wo ich all die Antworten hinschiebe, die nicht direkt auf schwesterelisa antworteten?
Code: Alles auswählen
static void add_rule(struct udev_rules *rules, char *line,
const char *filename, unsigned int filename_off, unsigned int lineno) {
char *linepos;
const char *attr;
struct rule_tmp rule_tmp = {
.rules = rules,
.rule.type = TK_RULE,
};
/* the offset in the rule is limited to unsigned short */
if (filename_off < USHRT_MAX)
rule_tmp.rule.rule.filename_off = filename_off;
rule_tmp.rule.rule.filename_line = lineno;
linepos = line;
for (;;) {
char *key;
char *value;
enum operation_type op;
if (get_key(rules->udev, &linepos, &key, &op, &value) != 0) {
/* Avoid erroring on trailing whitespace. This is probably rare
* so save the work for the error case instead of always trying
* to strip the trailing whitespace with strstrip(). */
while (isblank(*linepos))
linepos++;
/* If we aren't at the end of the line, this is a parsing error.
* Make a best effort to describe where the problem is. */
if (!strchr(NEWLINE, *linepos)) {
char buf[2] = {*linepos};
_cleanup_free_ char *tmp;
tmp = cescape(buf);
log_error("invalid key/value pair in file %s on line %u, starting at character %tu ('%s')",
filename, lineno, linepos - line + 1, tmp);
if (*linepos == '#')
log_error("hint: comments can only start at beginning of line");
}
break;
}
...
...
...
}
/* add rule token and sort tokens */
rule_tmp.rule.rule.token_count = 1 + rule_tmp.token_cur;
if (add_token(rules, &rule_tmp.rule) != 0 || sort_token(rules, &rule_tmp) != 0)
LOG_RULE_ERROR("failed to add rule token");
}
Lieber nicht! Ich hatte vor zwei Monaten die Überraschung mit tr und kurz darauf nochwas von der Sorte.
Na toll! Da haben die extra eine Eins dazugezählt, damit die falsche Zählung der Spalte in der Fehlermeldung erscheint.
In der IT zählt man von 0. Der Mensch zählt ab 1.Lohengrin hat geschrieben:Na toll! Da haben die extra eine Eins dazugezählt, damit die falsche Zählung der Spalte in der Fehlermeldung erscheint.