运行外部命令时出现问题
问题描述:
我使用反引号在Perl中运行外部命令,但是我遇到了问题。运行外部命令时出现问题
我想要做的就是运行
`mount /dev/sdb2 /mnt`
但sdb2只有当我与这个磁盘上运行它的正确参数,我希望能够与任何磁盘运行该脚本。
该脚本获取有关我正在使用的源磁盘(在本例中为sdb)的信息,并将其放置为“$ source”。但是,当我尝试:
`mount $source /mnt`
它说:“安装:你必须指定文件系统类型”
在这种情况下,程序会询问有关如何使“2”
任何想法该脚本找到需要的号码,或者至少如何在“$ source”之后添加“2”以便
$source = /dev/sdb2 and not /dev/sdb
在此先感谢!
答
使用大括号:
`mount ${source}2 /mnt`
NB。请确保您验证了$source
的值,以免引入代码注入漏洞。
+0
谢谢,这真的有助于:) – 2012-01-27 09:28:34
+2
+ 1为精湛的思想阅读能力 – mob 2012-01-27 16:00:53
我没有看到任何需要解决的问题。你问如何让你的程序要求分区号?如果是这样,请编辑您的问题来澄清,并发布您迄今为止尝试过的代码。 – Mat 2012-01-27 08:41:18
这是否足够清楚或者我应该澄清更多? 感谢指针顺便说一句,我是新来的,我需要所有的帮助,我可以得到! =) – 2012-01-27 09:13:20
不是。没有什么可以“猜测”正确的分区号(你所说的“2”)。要么你的程序需要列出该驱动器上的所有分区(可以用'glob'来完成)并尝试所有分区(不是一个好主意),或者你需要从用户那里获得正确的输入。你添加的最后两行让我完全不明白他们应该表达什么。 – Mat 2012-01-27 09:16:17