Você pode tentar simplesmente,
Crie um arquivo chamado myscript com o seguinte conteúdo:
#!/bin/bash
echo -n "Enter Run level":
read rl;
sudo init $rl;
Onde echo é usado para imprimir o que inserir, read é usado para obter a entrada e armazenar na variável rl e sudo init $rl; para executar o comando para alterar o nível de execução.
Para mais controle / verificação da entrada, você pode usar o loop, como while e case .
Você deve conceder permissão de execução: sudo chmod +x myscript para que possa ser executado.
Então você pode executar o script como:
$ ./myscript
$ Enter Run level : 3
EDITAR:
como @RuiFRibeiro sugerido , o comando para alterar o nível de execução é telinit :
NAME
telinit - change system runlevel
SYNOPSIS
telinit [OPTION]... RUNLEVEL
DESCRIPTION
telinit may be used to change the system runlevel.
Portanto, você deve usar telinit em vez de init no script.
E para verificar o nível de execução, você pode usar o comando who -r ou runlevel , que gera o nível de execução anterior e atual.
$ who -r | awk '{print $1,$2}'
run-level 3
$ runlevel
2 3