bash: запускать несколько команд по отдельности в командной строке - PullRequest
1 голос
/ 22 февраля 2020

Я хочу запустить несколько команд, как будто они выполняются по одной в командной строке

Например, у меня есть следующий список команд

ls
pwd
du -sh

Теперь я пытаюсь скопировать, вставить их и запустите:

$ ls
pwd
du -sh
file1.txt  file2.txt
/home/user/test
1M  .

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

$ ls
file1.txt  file2.txt
$ pwd
/home/user/test
$ du -sh
1M  .

Так что возможно, если у меня есть список команд, чтобы вставить их таким образом, чтобы они могли выполняться так, как если бы по одной на командную строку. Иначе единственный вариант - вставить одну команду за раз.

Обычно я получаю список команд для выполнения.

Ответы [ 3 ]

1 голос
/ 24 февраля 2020

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

Вместо этого вы могли бы введите команды bash -i, которые будут читать и выполнять их по очереди, показывая приглашение:

$ mypaste() { x="$(cat)"; bash -i <<< "$x"; }
$ mypaste  # Now paste some commands and hit ctrl-d
ls
pwd
whoami
^D

В результате:

you@yourdir $ ls
some files
you@yourdir $ pwd
/home/you/yourdir
you@yourdir $ whoami
you
you@yourdir $ exit
$
0 голосов
/ 23 февраля 2020

Попробуйте каждую команду, разделенную точкой с запятой:

ls; pwd; du -sh;

Это сделает пакет команд. Shell выполнит одну за другой, и вам не нужно вставлять каждую команду отдельно.

Надеюсь, это поможет.

0 голосов
/ 22 февраля 2020

nano myscript. sh или ваш любимый редактор и вставьте следующее.

#!/bin/bash
ls
pwd
du -sh

сделайте его исполняемым с chmod +x myscript.sh и запустите скрипт с

./myscript.sh

Вы можете выполните любые команды bash и посмотрите результаты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...