Как я могу выполнить определенную строку как команду в текстовом файле?

Пароль, который Вы используете для sudo, является паролем Вашей собственной учетной записи, не корневой учетной записи. sudo используется, чтобы допустить, что Вы получаете доступ к командам, которые должны быть выполнены, поскольку корень, не давая Вам базируется доступ непосредственно. Для изменения собственного пароля использовать passwd без sudo.

10
12.01.2015, 05:02
5 ответов

Попробуйте этого парня =):

sed -n 'line_num p' | bash

или

"$(sed -n 'line_num p')"
9
27.01.2020, 20:01

Вы можете сделать ...

{ head -n"$((NUM-1))"; IFS= read -r line; } </path/to/script >/dev/null
eval "$line"

, который получит линию $ NUM , от вашего скрипта в переменной оболочки $ Line А затем оцените его как команду в текущей оболочке.

Другой способ сделать это, как это может выглядеть:

 </path/to/script sed "${NUM}q;d" >/tmp/"$$"
 . /tmp/"$$" ; rm /tmp/"$$"
2
27.01.2020, 20:01

Вы редактируете свой скрипт с VIM (VI на Linux)? В VI добавить отображение:

:nmap <F4> Y:!<C-R>"<C-H><CR>

и впоследствии, когда вы находитесь на интересной линии в VI Press F4

1
27.01.2020, 20:01

Если вы делаете это интерактивно, то можете записать строку в историю бэша:

history -s "$(sed -n 'line_num p')"

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

3
27.01.2020, 20:01

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

for line in $(cat file.txt); do command $line; done
-2
27.01.2020, 20:01

Теги

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