1

Новичок скриптов Bash здесь пишет мой первый скрипт для копирования каталога картинок из одного места в другое.

#!/bin/bash
# Moves picture directories
cp -R /path/to/pictures/$1 /home/myUser/Pictures/$2
chmod -R 777 /home/myUser/Pictures/

Это работает нормально, но моя переменная $1 может быть довольно длинной строкой информации о дате, поэтому, если возможно, я бы хотел, чтобы она использовала стандартное автоматическое заполнение вкладок. Аналогично за $2 , потому что у меня есть несколько подкатегорий под картинками, и было бы неплохо иметь возможность дополнить их табуляцией.

Например : my_script 2014-07-<tab> автоматически заполняется до my_script 2014-07-15 если это единственный каталог, который начинается с этого скрипта.

Есть ли способ сделать это для пользовательских сценариев? На Ubuntu 14.04, если это имеет какое-либо значение.

1 ответ1

1

Стандартный способ сделать это в инструментах * nix - вообще не жестко кодировать определенные каталоги, а скорее передать оба пути в скрипт полностью:

#!/bin/bash
# Moves picture directories
cp -R -- "$1" "$2"
chmod -R 777 "$(dirname -- "$2")"

Два приятных побочных эффекта:

  • Автозаполнение работает без дополнительного кода.
  • Сценарий работает независимо от того, где находятся ваши каталоги изображений, даже с относительными путями.

Если вам нужно выполнить автозаполнение с определенным префиксом пути, вы можете попробовать проверить код bash_completion и узнать, как они автозаполняют пути.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .