No puedes. La forma de que falle un case
es reemplazar el separador ;;
con;&
(o;;&
). Y es un error de sintaxis poner eso dentro de un si.
Podría escribir toda la lógica como un condicional regular:
if [ "$input" != "foo" ] || [ "$VAR" = 1 ]; then
one branch...
else # $input = "foo" && $VAR != 1
another branch...
fi
echo
и cd
являются встроенными командами оболочки, поэтому они все еще «выполняются».
Чтобы исправить fstab, выполните команду
while read x; do echo "$x"; done < /etc/fstab
, который отобразит содержимое /etc/fstab, затем запустите
while read x; do echo "$x"; done > /etc/fstab
который будет затирать/etc/fstab
(очень плохую вещь ), но позволит вам заменить его тем, что вы набираете на терминале.
Затем введите (или, если вам повезет, скопируйте и вставьте )исходное содержимое /etc/fstab
, измененное так, чтобы вы могли снова выполнить что-то в корневой файловой системе.
Прервите ввод с помощью Control -D (или любого другого символа tty eof ), затем перезагрузите (или перезагрузите/включите -цикл )компьютера.
Чистая перезагрузка может оказаться сложной, потому что для этого потребуется запустить что-то, поэтому вам может потребоваться перезагрузить/включить -цикл -, но это может быть рискованно, если буферный кеш не был сброшен на диск.... лучшее, что вы можете сделать, это дать ему немного времени, прежде чем делать это.