2012-01-27 22 views
0

バックルを使用してperlで外部コマンドを実行していますが、問題があります。私が何をしたいか外部コマンドを実行すると問題が発生する

`mount /dev/sdb2 /mnt` 

を実行することです。しかしSDB2が、私はこのディスクでそれを実行している唯一の右のパラメータであり、私は任意のディスクでスクリプトを実行できるようにしたいです。

このスクリプトは、使用しているソースディスク(この場合はsdb)に関する情報を取得し、それを「$ source」としています。しかし、私はしようとすると:

それは言う
`mount $source /mnt` 

:プログラムが作成する方法については「2」

任意のアイデアが求められ、この場合には

「マウントあなたはファイルシステムタイプを指定する必要があります」スクリプトがrequriedされている番号を見つける、または事前に

$source = /dev/sdb2 and not /dev/sdb 

おかげように「$ソース」の後に「2」を追加するために、少なくともどのように!

`mount ${source}2 /mnt` 

NB:

+4

修正するものはありません。あなたのプログラムがパーティション番号を求める方法を尋ねていますか?その場合は、質問を編集して明確にし、これまでに試したコードを投稿してください。 – Mat

+0

これで十分ですか、それとももっと明確にする必要がありますか? ポインタbtwをありがとう、私はこれに新しいと私は得ることができるすべてのヘルプが必要です! =) –

+0

本当にありません。正しいパーティション番号(あなたが話している「2」)を「推測」することはできません。あなたのプログラムは、そのドライブ上のすべてのパーティションをリストする必要があります( 'glob'を使ってそれを行うことができます)。それらをすべて試してみるか、適切な入力をユーザから得る必要があります。あなたが追加した最後の2行は、私が彼らが何を意味するかについて完全に困惑しています。 – Mat

答えて

2

は、中括弧を使用します。コードインジェクションの脆弱性が導入されないように、$sourceの値を確認してください。

+0

ありがとう、これは本当に助けました:) –

+2

+1素晴らしい読書能力 – mob

関連する問題