Bash

Bash:如何正確接受使用者輸入?

  • October 27, 2018

我在網上找不到範例,但我確信我已經看到 shell 編碼器用於${1:--}接受使用者輸入。這是一個例子:

#!/bin/bash

var="${1:--}"
echo "$var"

然後,執行它:

$ ./test.sh "this is a test"

我的問題是:如何使用"${1:--}"接受使用者輸入不同於"$1"

${1:--}如果沒有參數 1 或參數為空,將擴展為字元串“-”。

所以./test.sh ""會像命令一樣返回字元串“-”./test.sh這在許多情況下被認為是一個有用的預設值,其中“-”的參數可以表示stdinstdout。它還確保在未明確設置參數時腳本不會中斷。

在 bash 的參數擴展下,您可以使用變數的預設值,這就是${1:--}口渴命令參數的作用,即-當且僅當$1未設置或為空時它才分配值。它也適用於任何其他參數,測試這個例子:

echo "${var:-X}"   # var is not defined so X will be echoed
var=Y              # lets define var
echo "${var:-X}"   # var is defined so its value Y will be printed

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