Bash

如何將一個命令的輸出作為命令行參數傳遞給另一個?

  • February 6, 2022

所以我有一個腳本,當我給它兩個地址時,它會搜尋兩個 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

您可以使用反引號 (`) 來評估命令並替換命令的輸出,例如:

echo "Number of files in this directory: `ls | wc -l`"

在你的情況下:

wget `echo http://maps.google.be/maps?saddr\=$1\&daddr\=$2 | sed 's/ /%/g'`

您可以使用“xargs”。一個簡單的例子:

ls -1 *.c | sort -n | xargs cat

您必須注意 xargs 不會將其標準輸入拆分為兩個或多個 comman 呼叫(上例中的“cat”)。

引用自:https://unix.stackexchange.com/questions/4782