
Предположим, что некоторые строки (например, 123, abc или test123) автоматически появятся на экране после последней команды, и я не могу заранее знать точное значение строки.
Далее я хочу создать новый каталог, названный по имени этой строки (например, или ./123/
) , что означает, что строка должна быть передана переменной , чтобы новый каталог мог быть создан с помощью ../abc/
./test123/
var
mkdir $var
решение1
Вы можете использовать обратные кавычки для сохранения результата команды (в моем примере это uname
) в переменной, затем echo
вывести его на экран и в конечном итоге использовать его в качестве аргумента для mkdir
:
FOO=`uname -n`
echo "$FOO"
mkdir "$FOO"
Превосходное руководство по написанию сценариев Bash Advanced содержитцелая глава о замене команд.
Как прокомментировал @KalvinLee, предпочтительный формат сейчас $(...)
:
FOO=$(uname -n)