Schrift
[thread]12795[/thread]

chmod nutzlos? - Ubuntu (Seite 2)

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Linuxer
 2008-11-21 22:34
#116509 #116509
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
murphy+2008-11-21 17:17:07--
Besser wäre es jedoch, zuerst die Umgebungsvariable VISUAL zu testen, dann EDITOR und dann auf ein Standardprogramm zurückzugreifen.

Traditionell gibt nämlich VISUAL ein Editorprogramm an, welches unter umständen eine grafische, zumindest aber eine bildschirmfüllende Benutzerschnittstelle wie vim oder emacs hat, während EDITOR ein Editorprogramm angibt, das mit minimalen Anforderungen an das Terminal zurechtkommt und deswegen unter Umständen wirklich auf einen primitiven zeilenweiser Editor wie ed eingestellt ist.

In den meisten Fällen sind auf modernen Unices allerdings sowohl EDITOR als auch VISUAL auf den gleichen Editor eingestellt :-)


Hm, OK, wieder was dazu gelernt. VISUAL kannte ich bisher noch nicht wirklich. Danke für die Ergänzung.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
betterworld
 2008-11-21 22:35
#116510 #116510
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Bei mir öffnet "xdg-open /etc/fstab" die Datei in Firefox... editieren kann ich sie da nicht ;)
topeg
 2008-11-21 22:40
#116512 #116512
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Es kommt halt darauf an was die Distribution, oder der Benutzer voreingestellt hat.
Bei mir wir der Defaulteditor (gedit) gestartet. (Debian/Gnome).
topeg
 2008-11-22 03:31
#116521 #116521
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Nach dem ich mich durch die freedesktop Spezifikationen gehangelt habe sollte es so gut funktionieren:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/perl
use strict;
use warnings;

# zu nutzende Temporäre Datei
my $file='/tmp/test.txt';
# Typ der Datei
my $file_mime='text/plain';

# Datei erzeugen und mit irgendwas füllen
# echo ist einfach am kürzesten :)
system("echo Das ist ein test > $file")==0 or die "Konnte \"$file\" nicht erstellen ($@)";
# es gibt module,
# die zuverlässig unbenutzte temporäre Dateienamen erzeugen.
# für das Beispiel hier nutze ich sie nicht...

# offizielle XDG Pfade wo Daten zu finden sind
my @xdg_base=grep{$_ ne ''}split(/\:/,$ENV{XDG_DATA_DIRS});
# wir brauchen nur den "applications" Ordner
@xdg_base=map{$_.='applications/'}@xdg_base;

# Herausfinden was der defaulteditor für diesen MimeType ist
# zurück geliefert wird eine *.desktop referenz
my $d_file=`xdg-mime query default $file_mime`;
die $@ if($@);
chomp($d_file);

# Die *.desktop Datei suchen
for my $path (@xdg_base)
{
  if(-e $path.$d_file)
  {
    $d_file=$path.$d_file;
    last;
  }
}
die "$d_file nicht gefunden" if(!-f $d_file);

my $d_exec;
# Datei auslesen
open(my $FH, '<', $d_file) or die "$!";
# uns interessiert nur die "Exec=" Zeile
while(<$FH>){chomp; last if(($d_exec)=$_=~/^Exec=(.+)$/i); print "$_\n"}
close($FH);
die "executable nicht gefunden" unless($d_exec);

# %F sind Pfadlisten
# %f ist ein Pfad
# %U sind URL Listen
# %u ist eine URL
# Alle kommen mit einer einfachen Datei klar
$d_exec=~s/\%F|\%U/$file/gi;

# Das Programm starten
system($d_exec)==0 or die "$@";

# Datei wieder einlesen
my $data=do{ local(@ARGV,$/)=$file; <>; } or die "$!";
# Datei löschen
unlink($file) or warn "$!";
# daten ausgeben/verarbeiten
print "DATA:\n$data\n";


Grundsätzlich würde ich mir einen einfacheren Weg wünschen, der mir das Suchen abnimmt.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2008-11-20 20:32.