канал для принятия: stty: стандартный ввод: неподходящий ioctl для устройства

В оболочках POSIX:

cd -P -- "$(mycommand)"
  • $(cmd)— это замена команды . Он расширяется до стандартного вывода cmdза вычетом завершающих символов новой строки.
  • "$(cmd)". Без кавычек это расширение было бы подвержено разделению + подстановке, что нам здесь не нужно.
  • --отделяет опции от аргументов. Если вы знаете, что вывод mycommandне будет начинаться ни с -, ни с +, вы можете его опустить. Если нет that, выведите мой вариант cd
  • .
  • cd— команда смены текущего каталога. Однако без -Pон может не перейти в каталог, указанный в качестве аргумента, если он содержит компоненты ...

Или вы можете написать cd $(mycommand). Это было бы очень небрежно,но это будет работать при условии, что вывод mycommandне содержит пробелов, табуляции, новой строки, символов *, ?, [или компонентов ..и не начинается с -или +.

Теперь я слышу, как вы спрашиваете: как мне изменить каталог, оканчивающийся символами новой строки, с помощью этих команд?

1
22.11.2018, 01:09
2 ответа

Спасибо всем, я использую echo "apps" | adop -status 2>/dev/null, все работает нормально.

0
27.01.2020, 23:33

С помощью expectвы можете подделать терминал для adop, а затем ввести его через процедуру spawn:

#!/usr/bin/env expect
spawn -noecho adop -status
send "apps"
expect -ex "Enter the APPS password"
send "thepassword"
2
27.01.2020, 23:33

Теги

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