Bash

展開輸入、輸出或錯誤

  • January 18, 2022

我想要做的是要求使用者輸入一行並發送到標準輸出。

我嘗試獲取輸入以執行條件問題,但無法擴展輸入(在本例中是輸入 0,但可以是輸出 1 或錯誤 2)。在這種情況下,我想詢問並從標準輸入讀取使用者輸入並發送到標準輸入/輸出,然後驗證是否有某些東西(如果非零)。程式碼看起來像(在這種情況下可能看起來很困惑,您可以跳過並使用上面的描述)

#!/usr/bin/bash

read>&0

if [[ -n $my_input_expanded ]] ; then
 echo "hello word"
fi

這裡read起到詢問使用者輸入的作用(可以是另一個命令,但我不知道哪個可以在這裡),變數 $my_input_expaded 是一些類似輸入重定向的操作0>(我知道這只是到文件,但是是這樣的),但重定向是輸入的擴展。

您確實應該學習初學者指南,而不是嘗試猜測語法。Shell 腳本很奇怪。真的。這是一個執行您所描述的版本:

#!/bin/sh

# read a line of text into the variable "$line"
IFS= read -r line

# check if the result contains any text
if [ -n "$line" ]
then
   # it does, so output a simple response including the given text
   echo "hello: $line"
fi

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