Я знаю, что мы можем передать аргумент в bash через Runtime в java. У меня есть особый случай, я хочу передать аргументы типа $ (date + "% Y" "% m") в качестве параметра в bash, который, в свою очередь, будет вычислен и сохранен в переменной в bash. Рассмотрим следующий java код:
String[] cmd = {"/bin/bash", "/user/username/test.sh", "firstparameter", "date +%Y", "folder_$(date +%Y)";
Process process = Runtime.getRuntime().exec(cmd);
Приведенная выше команда запускает тест сценария оболочки. sh. Мой сценарий выглядит следующим образом:
first=$1
year=`$2`
foldername=`$3`
echo $first
echo $year
echo $foldername
Я включил обратные пометки в мой код bash, чтобы аргумент, переданный через программу java, мог быть выполнен первым. Вывод команды будет таким:
firstparameter
2020
$(date: not found
Я хочу, чтобы bash имел имя папки в виде folder_2020. Как мы можем достичь этого? Я пытался много раз, но не смог добиться успеха. Любая помощь будет высоко оценена.