コード例:
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 の値に展開します。