если Вы хотите 4 случая (0,1,2,3), Вам нужно RANGE=4
упростите:
flipS() {
local options=("" "-fliph" "-flipd" "-flipv")
local index=$(( RANDOM % ${#options[@]} ))
setS=${options[$index]}
}
если Вы хотите использовать setS
таким способом, которым команда не видит его, если это - пустая строка, Вы не должны заключать переменную в кавычки:
hsetroot $setS -anotheroption ...
В большинстве конфигураций sudo удаляет большинство переменных среды. Вы можете увидеть конфигурацию sudo, запустив sudo -V
от имени пользователя root (так sudo sudo -V
как пользователь с разрешениями sudo).
В Ubuntu переменные удаляются, кроме небольшого списка, а РЕДАКТОР
и VISUAL
не включены в список для сохранения. Поэтому, когда вы запускаете sudo somecommand
, ваши настройки редактора для каждого пользователя не применяются при выполнении somecommand
.
Когда вы запускаете sudo -E
, файл копируется во временное расположение, затем sudo запускает ваш редактор без дополнительных привилегий, и, наконец, временный файл перемещается в окончательное расположение, если редактор возвращается статус успеха. Поскольку редактор выполняется без дополнительных привилегий, sudo не удаляет окружение.
По возможности следует использовать sudo -E
, поскольку это позволяет запускать ваш любимый редактор, не беспокоясь о запуске программ с повышенными привилегиями. Когда это невозможно (например, для запуска crontab -e
, вы можете выбрать свой редактор, снова определив свои предпочтения внутри команды, выполняемой sudo:
sudo env VISUAL=vim crontab -e