Как в скрипте оболочки присвоить переменной значение, отображаемое на экране?

Как в скрипте оболочки присвоить переменной значение, отображаемое на экране?

Предположим, что некоторые строки (например, 123, abc или test123) автоматически появятся на экране после последней команды, и я не могу заранее знать точное значение строки.

Далее я хочу создать новый каталог, названный по имени этой строки (например, или ./123/) , что означает, что строка должна быть передана переменной , чтобы новый каталог мог быть создан с помощью ../abc/./test123/varmkdir $var

решение1

Вы можете использовать обратные кавычки для сохранения результата команды (в моем примере это uname) в переменной, затем echoвывести его на экран и в конечном итоге использовать его в качестве аргумента для mkdir:

FOO=`uname -n`
echo "$FOO"
mkdir "$FOO" 

Превосходное руководство по написанию сценариев Bash Advanced содержитцелая глава о замене команд.

Как прокомментировал @KalvinLee, предпочтительный формат сейчас $(...):

FOO=$(uname -n)

Связанный контент