Хотя это не отвечает на Ваш вопрос точно, вот один способ генерировать каждую перестановку букв от многих строк той же длины: например, если Ваши слова были "кофе", "joomla" и "Moodle", можно ожидать вывод как "coodle", "joodee", "joffle", и т.д.
В основном, количество комбинаций (количество слов) к питанию (количество букв на слово). Так, выберите случайное число между 0 и количество комбинаций - 1, преобразуйте то число для базирования (количество слов), затем используйте каждую цифру того числа как индикатор для который слово взять следующую букву от.
, например: в вышеупомянутом примере. 3 слова, 6 букв = 729 комбинаций. Выберите случайное число: 465. Преобразуйте в основу 3: 122020. Возьмите первую букву от Word 1, 2-го от Word 2, 3-го от Word 2, 4-го от Word 0..., и Вы добираетесь... "joofle".
, Если Вы хотели все перестановки, просто цикл от 0 до 728. Конечно, если бы Вы просто выбираете одно случайное значение, много <забастовка>, более простая забастовка>, меньше запутывающий путь состоял бы в том, чтобы циклично выполниться по буквам. Этот метод позволяет Вам избежать рекурсии, должны, Вы хотеть все перестановки, плюс он делаете, Вы быть похожими на Вас знаете Математику <глоток> (TM) глоток>!
, Если количество комбинаций является чрезмерным, можно разбить его в серию меньших слов и связать их в конце.
Это не работает, потому что кавычки отключают особое значение слова >
и &
. Вы должны выполнить команды, которые реализуют эти функции оболочки.
Для перенаправления вызовите exec >> myfile.log 2> & 1
перед командой, которую вы хотите зарегистрировать.
Чтобы запустить программу в фоновом режиме используйте nohup
( nohup cmd args ...
).
Вы можете сделать это с помощью команды eval
:
eval ${COMMAND}
eval
делает то, что вы хотите.
#!/bin/bash
CMD="echo foo"
OUT="> foo.log"
eval ${CMD} ${OUT}
CMD="sleep 5"
BG="&"
eval ${CMD} ${BG}