Определение того, какой двоичный файл выполняется, когда вы вводите только имя, выполняется с помощью which
и с помощью readlink
вы можете сжать процесс до одной строки.
readlink -e $ (which java)
readlink -e
печатает значение символьной ссылки или канонического имени файла, а -e гарантирует, что оно рекурсивно следует за каждым компонентом.
tony@trinity:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
примечание: у меня не установлен javac на машине, на которой я это тестировал, поэтому я просто использовал java, но вышеперечисленное будет работать с любым двоичным файлом.
Вы также, кажется, спрашиваете, какая версия java находится в определенной папке? Для этого вы просто делаете это
/full/path/java -version
, что не позволяет Linux искать путь и напрямую находить двоичный файл java. В вашем случае
/usr/lib/jvm/java-7-oracle/javac -version
Если вы используете
printf "xx\t\tyy"
, он должен расшириться до реального символа табуляции. Поведение echo
в отношении bash
было неустойчивым. Я протестировал bash
на своем Debian 7 и обнаружил, что ни echo -t
, ни / bin / echo -t
не содержат табуляции, а printf
(чтобы убедиться, что вывод перенаправляется в файл). Вот сценарий:
#!/bin/bash
echo -t "xx\t\tyy"
echo done
/bin/echo -t "xx\t\tyy"
echo done
echo "xx\t\tyy"
echo done
/bin/echo "xx\t\tyy"
echo done
printf "xx\t\tyy"
echo done
и вывод на терминал:
-t xx\t\tyy
done
-t xx\t\tyy
done
xx\t\tyy
done
xx\t\tyy
done
xx yydone
Это отличается от дополнительной проблемы размещения символов на экране терминала. Как правило, большинство терминалов имеют только пробелы , которые можно выбрать для вырезания / вставки (независимо от того, печатаете ли вы табуляцию или нет). Для этого -
Вкладка не является печатным символом. Tab - это управляющий символ, который обычно перемещает курсор (но не в конец строки), оставляя символы, через которые он прыгает, без изменений.
gnome-terminal
(и другие эмуляторы на основе vte
) имеют специальный прием, который пытается сохранить вкладки для целей копирования и вставки, однако он все равно теряет их при мягком переносе строки. Другие эмуляторы также могут иметь такой взлом, но обычно их нет.
См. Также беседу на https://bugzilla.gnome.org/show_bug.cgi?id=769316 .
Немного странно, но если все вы хотите - получить результат в буфер обмена, чтобы вы могли вставить его в Excel, вы можете попробовать использовать что-то вроде xclip. Обратите внимание, что вам, возможно, придется установить его. С помощью xclip я могу написать что-то вроде этого.
echo -e "xx\t\tyy" | xclip -selection c
Теперь он у меня в буфере обмена, я могу вставить его в Excel. Если эхо не работает, вы можете попробовать printf.
Если вы не хотите вводить все это каждый раз, вы можете вместо этого создать псевдоним.
alias xclip="xclip -selection c"
echo -e "xx\t\tyy" | xclip
И если ничего другого, вы всегда можете перенаправить вывод, который хотите, в файл, просто открыть его в текстовом редакторе и скопировать то, что вам нужно, поскольку вкладки должны оставаться вкладками в файле.
echo -e "xx\t\tyy" > tmpfile.txt