/bin/sh: 1: 語法錯誤:使用基本名稱時未終止的帶引號的字串

/bin/sh: 1: 語法錯誤:使用基本名稱時未終止的帶引號的字串

程式碼範例: my PWD = /aa/bb/cc/dd

dir= `dirname "$(PWD)"`
output = `basename "${dir}"`

dir 變數正確輸出:/aa/bb/cc

期望的輸出變數:cc

我收到的錯誤:/bin/sh: 1: Syntax error: Unterminated quoted string

我嘗試過不同的報價組合和其他類似建議的解決方案:https://stackoverflow.com/questions/22401091/bash-variable-substitution-vs-dirname-and-basename/22402242https://unix.stackexchange.com/questions/253524/dirname-and-basename-vs-parameter-expansion

答案1

下面的程式碼對我有用:

dir1=`dirname "$PWD"`
output=`basename "$dir1"`

答案2

相反"$(PWD)",您會想要"${PWD}".前者嘗試執行指令 PWD,後者擴展為變數 PWD 的值。

相關內容