Я строю минимальное стандартное меню Bash.Выборы работают нормально, но команды не выполняются.Я подозреваю, что могу добавить команду, но не уверен, как это делается.Мне часто отправляют 2 команды, поэтому команды должны быть разделены таким образом, чтобы bash понимал их как строку команд.
Я нашел этот вопрос SO с похожим названием, но не отвечал, почему команды внутриbash-скрипт не выполняется:
Невозможно выполнить команды оболочки в bash-скрипте
Что работает, а что нет?
Нажмите 1: Не меняется на правильный CD.
Нажмите 2: Создает файл в правильной папке.
Нажмите 3: Работает.
Нажмите 4: Работает (R файлготовится с: a <- 1). </p>
Требуемое поведение:
Мне нужны команды внутри скрипта меню bash, которые нужно выполнить.
#!/bin/bash
# -----
# Menu:
# -----
while :
do
echo "Menu"
echo "1 - Change directory to /tmp"
echo "2 - Create file test1.sh with hello message, in /tmp"
echo "3 - Execute test1.sh"
echo "4 - Execute R-script [/tmp/test2.R]"
echo "Exit - any kind but not [1-4]"
read answer;
case $answer in
1)
echo "Change directory to [\tmp]"
cd /tmp # Command to be executed.
break
;;
2)
echo "Create file [test1.sh] in [\tmp]"
# Commands to be executed.
cd /tmp
touch test1.sh
chmod +x test1.sh
echo echo "hello" > test1.sh
break
;;
3)
echo "Execute file [test1.sh]"
/tmp/./test1.sh # Command to be executed.
break
;;
4)
echo "Execute R-script [/tmp/test2.R]"
cd /tmp && /usr/bin/Rscript test2.R # Command to be executed.
break
;;
*)
# Command goes here
echo "Exit"
break
;;
esac
done