Была такая же проблема. Я добавил sudo вот так:
sudo systemctl unmask -- -.mount
Но изменения не были видны мне, пока я не обновил systemctl:
sudo systemctl daemon-reload
Но все же изменения не были видны при запускеsystemctl unmask -- -.mount
:
● -.mount - Root Mount
Loaded: masked (Reason: Unit -.mount is masked.)
Active: active (mounted) since Thu 2019-02-14 04:11:58 CST; 6 months 14 days ago
Where: /
What: /dev/mmcblk0p2
Tasks: 0 (limit: 2077)
Memory: 0B
CGroup: /system.slice/-.mount
Мне пришлось перезагрузить систему, прежде чем systemctl unmask -- -.mount
отобразил что-то другое:
● -.mount - /
Loaded: loaded (/etc/fstab; generated)
Active: active (mounted) since Thu 2019-02-14 04:11:58 CST; 6 months 14 days
Where: /
What: /dev/mmcblk0p2
Docs: man:fstab(5)
man:systemd-fstab-generator(8)
Как они сказали в комментариях, на самом деле нет.
Ну, вы могли бы сделать это с помощью eval
, но у вас будут проблемы с цитированием/экранированием всего еще в этой командной строке.
Есть кое-что, что вы можете сделать с функциями, :чтобы запустить заданную простую команду с перенаправлением; или просто написать сообщение в stderr:
#!/bin/bash
tostderr() {
"$@" >&2
}
warn() {
local IFS=" "
printf "%s\n" "$*" >&2
}
tostderr printf "warning: %s\n" "something happened"
warn another thing to warn about
Акцент на простой команде в первой, это не eval
и у вас не может быть синтаксиса оболочки внутри команды. Например. в tostderr foo | bar
он перенаправляет вывод толькоfoo
(за канал на stderr ), а tostderr (foo | bar)
не будет работать.
Если бы вы использовали zsh и очень хотели этого, вы могли бы использовать глобальный псевдоним для добавления перенаправления (, но некоторые могут подумать, что это граничит с запутанным кодированием):
#/usr/bin/zsh
alias -g TOSTDERR='>&2'
echo something bad happened TOSTDERR