Можно ли сделать флэш-накопитель USB, вставленный в один порт, доступным для чтения из другого порта?

Существуют команды falseи true, которые удобны для выражения логических значений в оболочках. Для многословности общепринятым подходом является использование уровня журнала, при котором каждое вхождение -vувеличивает уровень журнала, а -qуменьшает его.

interactive=false
log_level=1

log() {
  local level="$1"
  if [ "$level" -ge "$log_level" ]; then
    shift
    local IFS=" "
    printf '%s\n' "$*"
  fi
}


while getopts iqv option; do
    case $option in
        i)
            log 2 "interactive mode set"
            interactive=true;;
        v)
            log 2 "increasing log level"
            log_level=$((log_level + 1));;
        q)
            log 2 "decreasing log level"
            log_level=$((log_level - 1));;
        *)
            exit 1 ;;
    esac
done
shift "$((OPTIND - 1))"

log 2 'This is a verbose message'
log 3 'This is a debug message'

if "$interactive"; then
   # interactive code
fi

# or:

ask() { # args: var default question
  if "$interactive"; then
    printf %s "$3"
    IFS= read -r "$1"
  else
    eval "$1=\$2"
  fi
}

yesno() { # args: default question
  local answer="$1"
  ask answer "$1" "$2"
  case $answer in
    ([yY][eE][sS] | y | Y) return 0;;
    ([nN][oO] | n | N) return 1;;
    (*) case $1 in
          ([yY][eE][sS] | y | Y) return 0;;
          ([nN][oO] | n | N) return 1;;
          (*) log >&2 -1 "Wrong default value $default"; exit 1;;
        esac;;
  esac
}

if yesno no "Are you OK with that (yes/[no])? "; then
   log 1 OK do it
  ...
fi

Приведенный выше код (непроверенный )соответствует политике Debian -, поэтому будет работать с Debian sh, независимо от того, настроен ли он как dash, lkshили bash(, также будет POSIX, если нет дляlocal).

0
09.05.2019, 07:13
2 ответа

При условии, что я понял, чего вы пытаетесь достичь, это могло быть (частично )ответом здесь:

Возможно, вы сможете делать то, что хотите, в зависимости от вашего оборудования + программного обеспечения + того, насколько вы готовы взломать и то, и другое.

1
28.01.2020, 02:30

Вам потребуется хост-адаптер USB RasPi не только для работы в режиме устройства (, что можно выполнить, в соответствии с этим вопросом на RaspberryPi.SE , но и оба в режиме устройства (для автомобильной стереосистемы)и в режиме хост-адаптера (для фактического USB-накопителя)одновременно . Я не уверен, что аппаратное обеспечение может это сделать

1
28.01.2020, 02:30

Теги

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