Fifo

製作一個去除所有前導空格的 FIFO?

  • May 3, 2017

我從個人手冊.txt文件中複製了一個程式碼塊。我將它粘貼到終端並通過按 Enter(Return)來執行。最近我出於美學原因將它縮進了那裡,但是當我複制它時,執行中斷(打開了輔助提示)。為了處理這種現象,我想到了使用 FIFO。

我嘗試創建一個 FIFO,向其中傳遞以下程式碼塊:

⇨⇨⇨⇨(
⇨⇨⇨⇨Indented commands...
⇨⇨⇨⇨)

FIFO 應該從這個原始程式碼塊中刪除所有前導空格(通常是表格,但也可能是空格),並返回它的未縮進版本:

(
commands...
)

據我了解,我應該放入 FIFO 文件的程式碼是's/^\s*//g'.

我的問題:

當我將程式碼塊粘貼到 Bash 終端時,如何在執行之前使其受我創建的 FIFO 文件的影響?

更新:

這是我測試的完整語法。它未能正確執行(沒有錯誤,只是打開了一個輔助提示),因此我考慮使用 FIFO 過濾器:

⇨⇨⇨⇨(
⇨⇨⇨⇨command1...
⇨⇨⇨⇨cat <<-'PMA' > /opt/script.sh
⇨⇨⇨⇨⇨⇨⇨⇨#!/bin/bash
⇨⇨⇨⇨⇨⇨⇨⇨strings...
⇨⇨⇨⇨PMA
⇨⇨⇨⇨command2...
⇨⇨⇨⇨) | sed 's/^\s*//g'

我不相信你可以(相當容易地)簡單地製作一個 FIFO(又名“命名管道”)來改變通過它的數據。當數據來自管道的遠端時,過濾數據可能會簡單得多[...] | sed 's/^\s*//'(該g標誌是多餘的,因為“行的開頭”每行只能出現一次)。

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