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.

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[<>]);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.