/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/22402242そしてhttps://unix.stackexchange.com/questions/253524/dirname-and-basename-vs-parameter-expansion

答え1

以下のコードは私の場合は機能しています:

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

答え2

の代わりに"$(PWD)"を使用します"${PWD}"。前者はコマンド PWD を実行しようとし、後者は変数 PWD の値に展開します。

関連情報