Отобразите меню имен файлов и позвольте пользователю выбрать файл путем введения номера

Распределение

Выбор правильного дистрибутива для себя не является легкой задачей, но еще более трудно дать справку в этой задаче кому-то, кого Вы не знаете - существует просто слишком много включенных переменных. К сожалению, даже если Вы спросите людей, которые являются опытными пользователями Linux, то почти все рекомендуют Вам дистрибутив, который он использует себя - это является слишком отдельным.

Я полагаю, что лучший способ состоит в том, чтобы пройти некоторый тест онлайн как этот (или найти другой для сравнения).

Базирующийся только на факторах Вы упомянули (скорость, устойчивость, уровень новичка) первую вещь, которая прибывает, естественно по моему мнению "не легко". Все те факторы более или менее противоречат друг другу. Таким образом, необходимо было бы найти баланс - на основе того, какую кривую обучения Вы готовы принять и как Вы располагаете по приоритетам свои потребности. Поэтому просто пройдите некоторый тест или охоту.

VM

На данном этапе выбор легче, потому что существует только несколько из тех. Если Вы хотите (как, я сделал), тот, который свободен и прост в использовании - я рекомендовал бы VirtualBox. Читать, что Вы уже использовали его в Windows, я вижу, что это - просто очевидный выбор.

1
02.08.2012, 02:05
3 ответа

В bash, ksh и zsh можно использовать select ключевое слово для этого:

select file in *; do
  grep 'something' "$file"
done

Дать инструкцию по использованию в то время как select список отображен, установлен $PS3 перед выполнением select, например:

PS3='number of file to grep in, ^C to exit: '
10
27.01.2020, 23:11
  • 1
    +1, но это отправляет Вас в цикл, выбирающий файлы. Сделать этот только один раз использование a break прежде done. Это также работает в zsh. –  bahamat 01.08.2012, 19:09
  • 2
    Спасибо за zsh отметьте, @bahamat. –  manatwork 01.08.2012, 19:22
  • 3
    Цикл выйдет, когда он будет видеть EOF, так используйте ^D для выхода. ^C прервет Ваш сценарий, который не может быть тем, что Вы хотите. положительная сторона –  Starfish 01.08.2012, 21:27
  • 4
    , @Starfish. полностью корректный –  manatwork 01.08.2012, 21:35
  • 5
    Таким образом, если Вы хотите оставить его до пользователя. –  bahamat 01.08.2012, 22:46

Для помещения номеров строки перед ls может быть самым легким

 ls -1 | cat -n

Затем для выбора номера документа N Вы могли попробовать

ls -1 | sed -n Np
2
27.01.2020, 23:11
  • 1
    Существует также ls -1 | nl. –  scai 01.08.2012, 15:51
  • 2
    Кроме того, -1 опция к ls неявно, когда произведенный переходит к каналу. –  enzotib 01.08.2012, 16:02
  • 3
    В случае, если между ls|cat и ls|sed некоторые новые файлы появляются в dir, он может выбрать неправильный файл. –  rush 01.08.2012, 18:08
  • 4
    @rush не нужно хранить выбранное число, но имя файла, принадлежащее этому числу. –  scai 01.08.2012, 19:32

Между прочим, можно использовать inode число и сделать это с только ls:

ls -i

произведет что-то как:

 $ ls -i
13107210 file
13238318 dir
13109301 script.sh

Однако число является довольно большим по сравнению с cat -n. Но основное преимущество этого пути состоит в том, что Вы всегда будете находить точный файл, в то время как с cat -n + sed можно взять другого, если между два управляют, чтобы некоторые новые файлы были созданы в dir.

0
27.01.2020, 23:11
  • 1
    я попробовал ls-i опция без удачи. Действительно ли это возможно к grep файл с помощью inode числа? Какова была бы команда? –  user1545938 07.08.2012, 13:09
  • 2
    лучший способ найти файл с точным inode должен использовать find : find . -inum INODE_NUM . Это то, о чем Вы говорите? справка –  rush 07.08.2012, 13:29
  • 3
    После попытки поместить число перед файлом с командой ls. Я изучил ls-i команда. В моем сценарии я сделал –  user1545938 08.08.2012, 14:51
  • 4
    Извините за это. Я буду, отправил сценарий. Я собираюсь попробовать шаги, которые отправил Bernhard. Спасибо за всю хорошую информацию. –  user1545938 08.08.2012, 15:02
  • 5
    Btw, если Вы объясняете правильно, что идет не так, как надо, я смогу помочь Вам. –  rush 08.08.2012, 15:08

Теги

Похожие вопросы