Вот еще один способ, который использует код Стефана Чазеласа, но с типом
, и преодолевает ограничения типа
...
function isCommand () {
#
local _arg=" $(type -t "$1") "
local _executables=' file alias keyword function builtin '
#
[[ "${_executables#*$_arg}" != "$_executables" ]] && return 0
### if $_arg is NOT in $_executables, the two strings will be identical
#
return 1
}
while
printf "Enter a command: "
read command
do
isCommand "$command" && { "$command"; break; }
#
echo Try again
done
type
возвращает «файл» для любого файла с установленным битом выполнения. Так мы обнаруживаем внешние команды. isCommand "$ command" && {"$ command"; перерыв; }
if [[... ]]
конструкция try / catch
обработка исключений &&
или ||
несколько команд должны быть заключены в фигурные скобки, а последняя команда и ее аргументы должны заканчиваться точкой с запятой ;
как в {cmd1 args; cmd2 args; }
. В таблице разделов MBR максимальное количество основных разделов ограничено 4.
Для установки Ubuntu необходимо создать расширенный раздел:
Восстановите раздел, который вы удалили на шаге 2, внутри расширенного раздела