Как ввести сценарий удара в командной строке, но не обработать сценарий, пока весь сценарий не был введен

На клиентах, под свойствами/усовершенствованным/DNS TCP/IP, гарантируют, чтобы "Добавили основной и соединение, определенные суффиксы DNS" выбраны и также который "Добавляют родительские суффиксы основного суффикса DNS", проверяется.

Кроме того, для FQDN в Системных Свойствах удостоверьтесь, чтобы "изменили основной суффикс DNS, когда доменные изменения членства" проверяются.

2
задан 18 March 2010 в 18:27
6 ответов

Если Вы действительно не можете записать файл сценария в систему, Вы могли бы перенести свои команды в круглую скобку:

 ( ls; echo this; echo that; )

то же соглашение, мультилиния:

(
ls
echo this
echo that
)
3
ответ дан 3 December 2019 в 09:11
  • 1
    Спасибо за все ответы все. I' m все еще открываются к большему количеству предложений о том, как выполнить эту задачу, но этот ответ работает отлично на текущую проблему. –  MHGL 18 March 2010 в 18:41

Можно также перенести сценарий в фигурные скобки, если Вы не хотите, чтобы он выполнился в подоболочке:

{
echo one
echo two
}

Иначе должен передать эхо по каналу в sh или bash:

echo '
echo one
echo two
' | bash

или используйте eval:

eval '
echo one
echo two
'

Править:

Это также работает:

bash <<EOF
echo one
echo two
EOF
3
ответ дан 3 December 2019 в 09:11

cat test.sh | ssh user@server.net '/bin/bash -'

Но, если Вы можете ssh, Вы можете просто SCP завершенный сценарий так или иначе? Редактирование, и если Вы не можете SCP, Вы можете:

cat test.sh | ssh user@server.net 'cat > test.sh'

1
ответ дан 3 December 2019 в 09:11

Нет знакомый с Профессионалом QuickTest "HP", но что мешает Вам писать это в файл и выполнить его?

0
ответ дан 3 December 2019 в 09:11

Я посмотрел бы на batch - это делает почти точно, что Вы хотите.

0
ответ дан 3 December 2019 в 09:11

Это действительно зависит от того, что вы подразумеваете под «не выполнять, пока вы не укажете все строки». Bash - это интерпретируемый язык (не компилируемый), поэтому независимо от того, каким образом вы его разрезаете, оболочка будет читать и выполнять строки по одной за раз, каждая команда будет генерировать свой собственный код возврата независимо, независимо от того, помещаете ли вы эти команды в подоболочки или другие вещи.

Итак, я подозреваю, что вы действительно спрашиваете:

(a) есть ли способ собрать все выходные данные в одной области экрана без прерывания

(b) есть ли способ для вам нужно только один раз нажать клавишу «Enter», чтобы все команды выполнялись последовательно

Если вы присоединяетесь к каждой командной строке, разделенной точкой с запятой ';' тогда это имеет тот же эффект, что и запуск их на разных строках. Так что соедините их все вместе в одну строку и нажмите «Enter» один раз в конце. Вы можете сделать это вручную, набрав, или вы можете обработать свой сценарий оболочки с помощью инструмента (например, sed или tr), чтобы заменить символы конца строки точками с запятой, а затем передать результат в ssh. На локальном хосте запустите следующее:

cat script.sh | tr "\ n" ';' | ssh [удаленный хост]

Обратите внимание, что это не создает интерактивную оболочку на удаленном хосте, а только запускает команды из сценария и затем возвращает управление вашему локальному хосту.

\ n "';' | ssh [удаленный хост]

Обратите внимание, что это не создает интерактивную оболочку на удаленном хосте, а только запускает команды из сценария и затем возвращает управление вашему локальному хосту.

\ n "';' | ssh [удаленный хост]

Обратите внимание, что это не создает интерактивную оболочку на удаленном хосте, а только запускает команды из сценария и затем возвращает управление вашему локальному хосту.

0
ответ дан 3 December 2019 в 09:11

Теги

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