Если non-sed решение будет приемлемо, то этот отрывок Perl сделает задание:
$ echo "$input" | perl -ne 'chomp; /^\s*(.+?)\s+(.+)$/ && do { $v=`echo "$2"`; chomp($v); print "k=<$1> v=<$v>\n"}'
Найденный этим умным ответом в подобном вопросе в stackoverflow
(echo -e "cmd 1\ncmd 2" && cat) | ./shell_executable
Это добивается цели. cat
накачает в выводе echo
во входной поток shell_executable и ожидают большего количества исходных данных до EOF.
Самый чистый способ сделать это должно, вероятно, искать что-то как bash
--rcfile
опция. Поместите свои пользовательские команды в Ваш пользовательский файл и передайте его интерактивной оболочке для работы запуска.
Если никакая такая опция не существует, можно также попробовать следующее:
cat custom_commands_file - | ./shell_executable
cat
интерпретирует -
как stdin.
cmd 1
записанный обратно, но не понял, что это должен был быть o/p, сгенерированныйcmd 1
– Gowtham 05.12.2013, 20:53