- - PR -
シェルスクリプトの質問
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-05-04 21:34
シェルスクリプトを作っているのですがうまく動作しません。
調べては見たのですが私の知識が乏しく調べたいことどのように調べればよいかわかりませんでした(シェルスクリプトで検索をかけるとヒットしすぎで・・・) どなたか御知恵をお貸し頂ければと思います。 下記の内容でシェルスクリプトを作り実行してみたのですが Lhaplus.sh #!/bin/bash test="\\"/home/***/.wine/drive_c/Program Files/Lhaplus/Lhaplus.exe\\" \\"$1\\"" /usr/local/wine0.9.36/bin/wine $test 下記のエラーがでてしまいます wine: cannot find '"/home/***/.wine/drive_c/Program' やりたいことはWineにてLhaplusを動かし圧縮ファイルを解凍したいです 下記のようにすると動くのですが理由あって上記のように動かせないでしょうか Lhaplus.sh #!/bin/bash /usr/local/wine0.9.36/bin/wine "/home/***/.wine/drive_c/Program Files/Lhaplus/Lhaplus.exe" $1 わかる方が居りましたら教えてください。 よろしくお願いします。 |
|
投稿日時: 2007-05-04 23:07
testの内容が正しいかは知りませんが、
/usr/local/wine0.9.36/bin/wine "$test" とすればよいと思います。 |
|
投稿日時: 2007-05-08 20:07
あしゅ様
返答有り難うございます 返事が遅れてしまい申し訳ありません /usr/local/wine0.9.36/bin/wine "$test" だとwineに渡したい引数が1つの場合よいのですが2つ以上だとダメみたいです。 変数$testの内容が "/***/Program Files/***" "/***/**" にして /usr/local/wine0.9.36/bin/wine `echo $test` のように変数に入れて渡すとだめです /usr/local/wine0.9.36/bin/wine "/***/Program Files/***" "/***/**" のように変数に入れず渡すとOKなのですが両者の渡し方は別物になってしまうのでしょうか Program Filesディレクトリの名前のmのあとのスペースが無いとうまくいくのですがスペースが入るとそこで wine: cannot find '"/home/***/.wine/drive_c/Program' と切れてしまうようです ふう〜っ、難しいですねシェルスクリプト (私が変なことをしているだけかもしれないですが 汗) 解る方がいましたら引き続き宜しくお願い致します。 |
|
投稿日時: 2007-05-08 20:17
eval?
eval /usr/local/wine0.9.36/bin/wine $test |
|
投稿日時: 2007-05-09 19:31
カーニー様
ピンポイントに有り難うございます。 また、勉強になりました [@ITより抜粋] eval 引数を一度評価し改めてコマンドにわたす ・・・って書いてありましたね@ITさんに 汗汗 おかげで無事解決できました 有り難うございます あしゅ様・カーニー様お付き合い頂きありがとう御座いました |
1