Variable

如何將萬用字元儲存在變數中

  • June 24, 2022

我有以下程式碼:

target="file.txt"
ls "$target"

輸出:

file.txt

這不適用於萬用字元:

target="*"
ls "$target"

輸出:

ls: cannot access '*': No such file or directory

問題是它被包裹在引號中。它正在做ls '*'而不是ls *.

當您引用 時$target,您是在告訴 shell 不要擴展萬用字元。試著去掉引號:

target="*"
ls $target

你會得到一個目錄列表。

但是可能還有哪些其他值target?可能有空格嗎?問號?你希望他們受到怎樣的對待?

您的需求尚不清楚,但這可能有效:

target="*"
bash -c "ls $target"

bash -c COMMAND在 shell 中執行命令 COMMAND。

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