Что означает -S означает в gksu -S mount …?

Итак, у меня есть сценарий, который использует -S mount nfs -o proto=tcp,port=2049 … etc. Для монтирования местоположения с другого компьютера Linux. Что означает -S ? Кажется, что он работает нормально или без него (он не работает, если я делаю такие, как gksu -- -S mount … etc. Чтобы запустить его без эмулятора терминала). Мне любопытно, действительно ли мне нужно -S по какой-то причине, или если я могу отказаться от него, чтобы сделать gksu -- работать, без последствий.

Вот сценарий, который я написал, для справки, с IP-адресом и путями, измененными для защиты параноидального:

 #!/bin/bash if mountpoint -q /home/myLaptop/myDesktop then notify-send -t 3000 "Warning" "It is already mounted." else gksu -- -S mount -t nfs -o proto=tcp,port=2049 192.168.0.x:/home/myLaptop /home/myLaptop/myDesktop if mountpoint -q /home/myLaptop/myDesktop then notify-send -t 3000 "Alert" "Mounted." else notify-send -t 3000 "Alert" "Mount failed." fi fi 

2 Solutions collect form web for “Что означает -S означает в gksu -S mount …?”

-- означает «конец опций»: последующие аргументы не считаются параметрами, даже если они начинаются с тире. Это квази-универсальная конвенция. Так что gktu -- -S mount … означает запустить команду -S .

 $ gksu -- -S whoami sh: 0: Illegal option -S 

Кажется, что вы хотели передать опцию -S в gksu , чтобы сказать ей использовать sudo а не su . Это должно быть раньше.

 $ gksu -S -- whoami root 

Вам нужно -- потому что иначе gksu подумает, что опция -o предназначена для себя, а не для mount .

Поскольку в другом ответе, который я принял, есть некоторая путаница, я напишу свой собственный ответ, который отвечает именно на то, что я спросил, но я оставлю это в качестве принятого ответа, так как он отвечает на вопрос, что мой вопрос был отредактирован до вместо того, что изначально было.

-S не является независимой командой, как предполагалось ранее. Он также не имеет ничего общего с mount . Это аргумент в отношении sudo и / или gksu (он делает что-то другое в зависимости от того, какую команду вы используете). (Итак, это должен быть gksu -S -- вместо gksu -- -S .) Итак, вот что- -S означает в том смысле, о котором мне было интересно. Однако, чтобы объяснить, что это означает, кроме этого, я приведу следующую справку:

  • gksu -S означает: «Сделать GKSu использовать sudo вместо su, как если бы он выполнялся как« gksudo ».
  • sudo -S означает «читать пароль со стандартного ввода».

Также, как представляется, нет необходимости использовать gksu -S когда вы можете более удобно использовать gksudo . sudo -S , с другой стороны, может иметь некоторое значение с паролями.

Нам просто нужно запустить команду как root (на самом деле это не root). Итак, поэтому мы используем gksudo или gksu -S вместо gksu без -S .

-- все еще должен быть там, хотя -S является частью gksu иначе – мы будем читать как аргумент для gksu .

Итак, вот исправленный код:

 #!/bin/bash if mountpoint -q /home/myLaptop/myDesktop then notify-send -t 3000 "Warning" "It is already mounted." else gksudo -- mount -t nfs -o proto=tcp,port=2049 192.168.0.x:/home/myLaptop /home/myLaptop/myDesktop if mountpoint -q /home/myLaptop/myDesktop then notify-send -t 3000 "Alert" "Mounted." else notify-send -t 3000 "Alert" "Mount failed." fi fi 
Linux и Unix - лучшая ОС в мире.