[英]Bash redirection operator sed command
我正在接受 Google Cloud 培訓,該培訓使用 bash 腳本執行 sed 字符串替換,然后部署到端點服務。 有這條 bash 線,我無法理解......
mv "$temp_file" "$TEMP_FILE"
# Because the included API is a template, we have to do some string
# substitution before we can deploy it. Sed does this nicely.
< "$API_FILE" sed -E "s/YOUR-PROJECT-ID/${project_id}/g" > "$TEMP_FILE"
有人可以解釋重定向運算符在“$API_FILE”擴展之前正在做什么嗎? 這是不是另一種寫法:
sed -E "s/YOUR-PROJECT-ID/${project_id}/g" "$API_FILE" > "$TEMP_FILE"
我對行首的重定向運算符“<”的 position 感到很困惑。 部署工作正常,因此這不是語法問題。
大多數人將重定向放在命令的末尾,但它們實際上可以出現在任何地方。 它們可以在開頭,甚至可以在其他 arguments 的中間(不推薦,但合法。)。
這些都是等價的:
< "$API_FILE" sed -E "s/YOUR-PROJECT-ID/${project_id}/g" > "$TEMP_FILE"
sed < "$API_FILE" -E "s/YOUR-PROJECT-ID/${project_id}/g" > "$TEMP_FILE"
sed -E < "$API_FILE" "s/YOUR-PROJECT-ID/${project_id}/g" > "$TEMP_FILE"
sed -E "s/YOUR-PROJECT-ID/${project_id}/g" < "$API_FILE" > "$TEMP_FILE"
重定向運算符可以在簡單命令之前或出現在任何地方,也可以在命令之后。 重定向按照它們出現的順序從左到右處理。
參見手冊: https://www.gnu.org/software/bash/manual/html_node/Redirections.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.