У меня есть сценарий оболочки, который начинается с:
sdir=`dirname $0`
sdir=`(cd "$sdir/"; pwd)`
И это обычно расширяется (с 'sh -h') в
++ dirname /opt/foo/bin/bar
+ sdir=/opt/foo/bin
++ cd /opt/foo/bin/
++ pwd
+ sdir=/opt/foo/bin
, но для одного пользователя для единственной комбинации параметров в расширяется (обратите внимание на две строки в значении sbin результата)
++ dirname bin/foo
+ sdir=bin
++ cd bin/
++ pwd
+ sdir='/opt/foo/bin
/opt/foo/bin'
Я пробовал разные комбинации, но не смог воспроизвести это поведение. При разных входных параметрах для этого пользователя он начал давать правильный однострочный результат. Я новичок в сценариях оболочки, поэтому, пожалуйста, совет, когда такой (cd X; pwd)
может вернуть две строки.
это наблюдалось на CentOS, но не уверен, что это имеет значение. Пожалуйста, совет.