Explicitly, устанавливающий значение $PATH
в подоболочке разрешает проблему:
env -i sh -c "PATH=\$PATH which ruby"
Обратите внимание что $
в $PATH
оставлен, что означает это $PATH
в подоболочке командой не заменяют со значением родительской оболочки $PATH
прежде чем команда выполняется (это могло также быть достигнуто с помощью одинарных кавычек).
Я действительно интересовался бы знанием, почему это необходимо в этом случае.
][] pr[
] длина страницы по умолчанию для текстового файла составляет []56[
]. Таким образом, вы можете сделать так:[
$ perl -MPOSIX=ceil -nle 'END{print ceil($./56)}' file
]
[]Если вы хотите посчитать много файлов, попробуйте:[
] [$ perl -MPOSIX=ceil -nle '
if (eof) {
print ceil($./56);
close ARGV;
}
' file1 file2 file3
] ] Я построил довольно ужасный хак, чтобы извлечь эту информацию из вывода [] pr[
]. Если вы используете []pr[
] в файле, то по умолчанию, он будет выводить на каждую страницу заголовок с номером страницы формы[
2014-07-04 11:40 file.txt Page 1
]
[]Таким образом, вы можете запустить []pr[
] в файле, извлечь последний заголовок из вывода, и из этого заголовка извлечь номер страницы. [
]Например, с помощью одной из следующих команд:[
] [pr file.txt | awk '/file.txt\s+Page/{ print $5; }' | tail -n1
]
[]или[
] [pr file.txt | awk '/file.txt/ && /Page/{ print $5; }' | tail -n1
]
[]Вы получите нужную информацию.[
] []Пример:[
] [> pr grapher.cpp | awk '/file.txt .* Page/'
2014-07-04 11:40 file.txt Page 1
2014-07-04 11:40 file.txt Page 2
> pr file.txt | awk '/file.txt\s+Page/{ print $5; }' | tail -n1
2
]
[]Одним из преимуществ этого метода является то, что вы можете настроить количество строк и столбцов с помощью опций []pr[
] и при этом получить правильный результат. Единственная проблема заключается в том, что некоторые опции удаляют заголовок из вывода...[