Если у Вас есть консольный доступ к VM, затем просто выполненному ifconfig -a
на госте. В то время как Вы там, проверьте, чтобы удостовериться, что у гостя действительно есть сетевое соединение и что sshd
работает.
Если у Вас нет консольного доступа, то возможности являются IP-адресом, был присвоен DHCP. Ищите другую машину, которая также получает присвоение DHCP, возможно, хост-сервер, и затем добавьте 1 к адресу и попробуйте его. На самом деле попробуйте следующие 5 или 6 адресов. Если это не работает, то Вы или имеете большую активную сеть и должны будете попробовать каждый IP-адрес в подсети, или существует проблема сети нижнего уровня как никакой маршрут для хостинга или два хоста с тем же MAC-адресом. Или возможно Вы просто не добрались sshd
выполнение.
Используя консоль самый легкий способ решить эту проблему.
Как насчет:
# ... getopts processing ...
[[ $1 = "--" ]] && shift
exeparams=("$@")
Отметьте, необходимо использовать массив для содержания параметров. Это правильно обработает любые аргументы, содержащие пробел. Разыменуйте массив с "${exeparams[@]}"
Используйте встроенное shift
. Во-первых, сделайте нормальное getopts
для Вашего сценария. После того как тот цикл завершается,
shift "$((OPTIND - 1))"
переключит все уже обработанные опции на верхний регистр.
Оттуда, необходимо будет закончить обрабатывать аргументы неопции, если таковые имеются, к первой части сценария (прежде чем --
). После того как Вы встречаетесь --
, переключите его на верхний регистр до, только последняя часть остается ( -d internalparam
часть, которая прибывает после --
). Один способ сделать это (использование bash
синтаксис):
while [[ $# -gt 0 ]]; do
# process next argument
case $1 in
foo) # process foo
;;
--) shift; break;; # found '--', discard it and exit loop
*) # handle unrecognized argument
;;
esac
# not '--', so discard the argument and continue
shift
done
Наконец, только второй набор опций / аргументы остаются, который можно передать. Не использовать $*
передать остающиеся параметры другой команде. Использовать "$@"
вместо этого, который сохраняет разделение оригинального слова.
external_command "$@"
--
, т.е.script foo -- bar
передал быfoo -- bar
к внешней программе. Мой ответ не делает то предположение, поскольку это не было явно указано в вопросе. – jw013 15.11.2012, 01:05-- -d internalparams
. В любом случае мой ответ является достаточно общим для обработки любого случая. спасибо – jw013 15.11.2012, 01:55