したがって、2つのアドレスを提供すると、2つのHTMLリンクを検索するスクリプトがあります。
echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g'
に送信してから、wget
出力をというファイルに保存したいがtemp.html
機能しません。誰かが理由を説明したり、解決策を与えることができますか?
#!/bin/bash
url = echo "http://maps.google.be/maps?saddr\=$1\&daddr\=$2" | sed 's/ /%/g'
wget $url
答え1
バックティック(`)を使用してコマンドを評価し、その出力を置き換えることができます。たとえば、次のようになります。
echo "Number of files in this directory: `ls | wc -l`"
あなたの場合:
wget `echo http://maps.google.be/maps?saddr\=$1\&daddr\=$2 | sed 's/ /%/g'`
答え2
「xargs」を使用できます。簡単な例:
ls -1 *.c | sort -n | xargs cat
xargsはstdinを2つ以上のコマンド呼び出し(上記の例では「cat」)に分割しないことに注意してください。
答え3
実際にURL行を実行しません。
#!/bin/sh
url="$(echo http://maps.google.be/maps?saddr\=$1\&daddr\=$2 | sed 's/ /%/g')"
wget $url
答え4
xargs
あるコマンドの出力を別のコマンドのパラメータに入れるのに最適なオプションです。
command1の出力があり、次のコマンドがそれを引数として3
使用したいと仮定すると、次のようなものが必要です。3
command2 3(which is output of 1st command) 4 5
だからこれのためにすることができます
command1 | xargs -I{} command2 {} 4 5
ここで、4と5は必要な2つの追加パラメータですcommand2
。
最初のコマンドの出力を希望する場所に中かっこを入れることができます。
だから、使用
command1 | xargs -I{} command2 {}