Fifo
製作一個去除所有前導空格的 FIFO?
我從個人手冊
.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
標誌是多餘的,因為“行的開頭”每行只能出現一次)。