command line: memunculkan suatu proses

0

Saya memiliki program perl yang menerima argumen (maksudnya adalah untuk mengubah direktori "cd") tanpa menelurkan proses anak.

$ FPATH / pcd.pl memungkinkan pengguna untuk memilih di antara sejumlah kandidat direktori yang memungkinkan, dll.

Caranya adalah untuk sampai ke direktori yang diinginkan tanpa dibiarkan dalam proses melahirkan. Berikut ini adalah doa yang saya tidak dapat mulai bekerja (ksh shell):

. $ FPATH / pcd.pl $ * | baca dir. cd $ dir

Tidak peduli apa direktori sebenarnya dikembalikan ke "$ dir" the ". Cd $ dir" tidak pernah sampai ke direktori yang diinginkan. Mohon saran. Terima kasih.

Fred Smith
sumber

Jawaban:

0

Saya tidak begitu mengerti baris kode Anda di sana; mungkin sudah kacau.

Pendekatan saya akan sedikit berbeda: Pertama, buat alias yang mengambil output dari sebuah program dan buat cd ke sana:

alias mycd='cd $(select-dir)'

Kemudian buat program untuk mencetak menu ke stderr dan pilihan untuk stdout, misalnya seperti ini:

#!/usr/bin/perl

use 5.010;
use strict;
use warnings;

my @entries = ('..', grep {-d} glob("*"));
for my $i (0..$#entries) {
        printf STDERR (" %2d: $entries[$i]/\n", $i);
}
$| = 1;
print STDERR ("cd to: ");
say($entries[<>]);
JyrgenN
sumber