Если Вы понимаете, что собираетесь хотеть снова использовать вывод перед ударом, Входят, можно сохранить его в переменной: добавить tmp=$(
в начале строки и )
в конце. (Это удаляет любую пустую строку в конце вывода команды и на самом деле удаляет любую заключительную новую строку; это редко имеет значение.)
tmp=$(python -c …)
echo "$tmp"
cd "$tmp"
Если Ваша оболочка является ksh или zsh, вот полезная функция, которую можно использовать для создания этого более автоматическим. (Это не справка в ударе, потому что это требует, чтобы последняя команда в конвейере была выполнена в родительской оболочке, которая только имеет место в ksh (не pdksh) и zsh.)
keep () {
local line IFS=$'\n'
kept=
while read -r line; do
printf '%s\n' "$line"
kept=$kept$line$IFS
done
}
alias keep=k
Использование это этот путь:
python -c … |k
cd $kept
hd
синоним для hexdump -C
на FreeBSD и на некоторых дистрибутивах Linux. hexdump
со дней BSD; od
с рассвета времени. Только od
стандартизирован POSIX. Единственное объяснение UNIX обсуждает почему od
был выбран в предпочтении к hd
или xd
.
Эти команды делают очень похожие вещи: отобразите текстовое представление двоичного файла, с помощью восьмеричной, десятичной или шестнадцатеричной нотации. Между двумя нет никакого принципиального различия.
У них есть много опций управлять выходным форматом, и некоторые форматы могут только быть достигнуты с одним или другой командой. В частности, для наблюдения взгляда того, что находится в двоичном файле мне нравится hd
выходной формат, со столбцом на правильных печатаемых символах показа буквально; od
не может сделать этого.
$ od /bin/sh | head -n 2 # od default: octal, 2-byte words
0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000002 000076 000001 000000 170020 000101 000000 000000
$ od -Ax -t x1 /bin/sh | head -n 2 # od showing bytes in hexadecimal
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00
$ hd /bin/sh | head -n 2 # hd default output: nice
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00 |..>.......A.....|
На самом деле OD
может отображать как Hex / Oct / Dec, так и печатные символы:
$ od -Ax -tx1z /bin/sh | head -n2
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 >.ELF............<
000010 03 00 3e 00 01 00 00 00 32 4e 00 00 00 00 00 00 >..>.....2N......<
Основное отличие, я думаю, является только историческим. Также некоторые версии HD
могут выводить цвет.
042577
18 битов т.е. 9/4 байта? – StackExchange for All 24.07.2011, 17:42123
число, представленное в основе 10 (десятичное число), тогда как0123
средства, что число представлено в основе 8 (восьмеричный), т.е.0123
83.0x123
был бы в основе 16 (шестнадцатеричные), т.е. 291. Это не связано сod
выходной формат. предположение – Gilles 'SO- stop being evil' 24.07.2011, 18:46