因此,我有一个脚本用于-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 使用 sudo 而不是 su,就好像它已作为“gksudo”运行一样。”sudo -S
意思是“从标准输入读取密码”。
gksu -S
当您可以更容易阅读地使用它时,它似乎也没有必要使用gksudo
。sudo -S
另一方面,对于密码可能具有一定的重要性。
我们只需要以 root 身份运行命令(实际上不是 root)。所以,这就是我们使用gksudo
orgksu -S
而不是gksu
without 的原因-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