-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
답변1
--
"옵션 끝"을 나타냅니다. 후속 인수는 대시로 시작하더라도 옵션으로 간주되지 않습니다. 이것은 준 보편적인 관례입니다. 따라서 gktu -- -S mount …
명령을 실행하는 것을 의미합니다 -S
.
$ gksu -- -S whoami
sh: 0: Illegal option -S
대신 사용하도록 -S
옵션을 전달 하려는 것 같습니다 . 그것이 먼저 와야 합니다 .gksu
sudo
su
--
$ gksu -S -- whoami
root
실제로 그렇게 해야 합니다. 그렇지 않으면 옵션 이 에 대한 것이 아니라 그 자체에 대해 고려되기 --
때문 입니다 .gksu
-o
mount
답변2
제가 수락한 다른 답변과 약간의 혼동이 있기 때문에 제 질문에 정확히 답변하는 답변을 직접 작성하겠습니다. 원래의.
-S
처음에 가정했던 것처럼 별도의 명령이 아닙니다. 그것은 어느 쪽과도 관련이 없습니다 mount
. 이는 sudo
and/or에 대한 인수 입니다 gksu
(사용하는 명령에 따라 다른 작업을 수행합니다). (그래서 gksu -S --
대신 사용해야 합니다 gksu -- -S
.) 그래서 그것이 -S
제가 알고 싶은 것입니다. 그러나 그 이상의 의미를 설명하기 위해 도움말을 인용하겠습니다.
gksu -S
"GKSu가 "gksudo"로 실행된 것처럼 su 대신 sudo를 사용하도록 하세요."라는 뜻입니다.sudo -S
"표준 입력에서 비밀번호를 읽습니다"를 의미합니다.
gksu -S
더 쉽고 가독성 있게 사용할 수 있다면 굳이 사용할 필요도 없을 것 같습니다 gksudo
. sudo -S
반면에 비밀번호에는 어느 정도 중요성이 있을 수 있습니다.
루트(실제로는 루트가 아님)로 명령을 실행하면 됩니다. 이것이 바로 Without 대신 gksudo
or 를 사용하는 이유입니다 .gksu -S
gksu
-S
--
-S
의 일부라도 여전히 거기에 있어야 합니다 . gksu
그렇지 않으면 -o
매개변수로 해석됩니다 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