我有一个 bash 脚本,目前有 700 多行。经过特别长时间的编辑,它现在出现如下错误:
./run_me.sh: line 693: unexpected EOF while looking for matching `''
./run_me.sh: line 702: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
但是,我可以看到第 693 行没有任何问题。它甚至没有引用。
我试过运行bash -x run_me.sh,并且可以看到最后一行运行,但该行也没有任何问题(该行和 693 之间的代码实际上是大部分代码)。
我可以注释掉整个代码,但是我更有可能看到由于缺少函数等而导致的错误,而不是我得到的 EOF 错误。
那么如果行号报告不正确,人们应该如何找到丢失的报价?
(无论如何,为什么 bash 的行号报告如此遥远?)
顺便说一句,我发现了我的特定错误(通过评论条带),这实际上是}在任意行号处的变量扩展中缺少错误消息指示的行——基于引号的语法突出显示在这里没有帮助,例如"${MY_ARRAY[@]"(应该是"${MY_ARRAY[@]}")中缺少的大括号。
(来自 SF 的交叉帖子,我在那里并没有得到太多快乐)
我已经启动并运行了 CentOS 6.2 机器,并使用互联网上的各种操作方法将 autofs 配置为在 /mydomain 文件夹下自动挂载 Windows 共享。具体来说,我有三个文件:
# ...
/mydomain /etc/auto.mydomain --timeout=60
# ...
Run Code Online (Sandbox Code Playgroud)
* -fstype=autofs,-DSERVER=& file:/etc/auto.mydomain.sub
Run Code Online (Sandbox Code Playgroud)
* -fstype=cifs,uid=${UID},gid=${EUID},credentials=${HOME}/.smb/mydomain ://${SERVER}/&
Run Code Online (Sandbox Code Playgroud)
这有效并允许每个用户在其主目录下的文件中指定自己的凭据。
但是,他们创建的挂载随后可供所有人使用原始用户的凭据使用,直到达到超时为止。这不太理想,所以我一直在考虑尝试执行以下操作之一:
/mydomain/server1自己的凭据同时访问~/mydomain/server1使用自己的凭据同时访问/mydomain/$USER/server1使用自己的凭据同时访问(但我还需要确保/mydomain/$USER给定的 $USER 是 0700)到目前为止,我看不到任何执行 #1 的方法,但对于 #2 或 #3,我尝试更改 /etc/auto.master 中的条目,以便密钥为 或${HOME}/mydomain,/mydomain/${USER}但两者都不起作用(第一个显示没有匹配的条目/var/log/messages,第二个似乎没有进行变量替换)。
我错过了一些明显的东西吗?
(PS:如果您可以提供一种方法来避免需要纯文本凭证文件,那就额外奖励了——也许是直接提示输入用户名/域/密码,甚至可能是一些 kerberos 魔法?)
(PPS:我简要地查看了smbnetfs,但我无法对其进行配置/制作 - 尽管fuse >= 2.6我有 v2.8.3 ,但它要求fusermount …
我有一台笔记本电脑和一个外部 HDMI 显示器。我已经确定如何使用arandr对齐和旋转显示器到我满意的位置,勾选了笔记本电脑屏幕(LVDS-1)的“主要”选项,并勾选了两个屏幕(LVDS-1)的“活动”选项和 HDMI-1-1)。
我希望 LXDE 主桌面和 LXPanel 任务栏始终位于笔记本电脑上。但是,当插入 HDMI 显示器时,任务栏和桌面图标都会移至 HDMI 屏幕。
在 LXPanel 面板设置中,有一个下拉列表,显示您想要在哪个显示器上显示 LXPanel,选项有All、1和2 。如果我将其设置为2,LXPanel 将显示在笔记本电脑屏幕上,但桌面图标保留在 HDMI 上。
如果我拔掉 HDMI,LXPanel 就会消失。我认为这是因为监视器 ID 恢复为1,而 LXPanel 配置为位于2上。
如果我是对的,那么我正在寻找一种方法来确保笔记本电脑屏幕始终为显示器1,并且 HDMI(如果已插入)为显示器2。请注意,我已经设置了“Primary”,arandr并且声明xrandrLVDS-1 是主要的。
有任何想法吗...?
我正在尝试在我的实验室 XenServer 设置上对基本 CentOS 安装的磁盘吞吐量进行基准测试,并且正在从 CentOS 6.4 最小 CD 安装。但是,安装 ISO 会启动到文本模式的 anaconda 设置,它只为我提供了通过一些基本设置步骤进行下一步的选项。
从记忆中,我确信完整的 CD 曾经允许我进行分区、选择挂载点和文件系统,但它是一个庞大的 ISO,其中包含许多我可能永远不会使用的软件包。这个最小的只是提供“使用整个磁盘”、“替换现有的 linux”和“使用可用空间”,然后愉快地开始并创建一个 LVM 卷组、根和数据卷,并将两者都格式化为 ext4。
LVM 的好处值得赞赏,但不能忍受,我只想要普通的旧 MSDOS 标记的主要 ext3 分区用于/boot和/(可能还有一个用于/home)。
对于这么简单的事情,我是否必须使用完整的 CD?