@sch имеет, приводят меня к этому решению:
sed -bne '/\r$/ {p;q}' < /path/to/file | grep -q .
Это выходит с TRUE, если файл имеет какие-либо строки, заканчивающиеся CR. Сцеплять это в находку:
find /path/to/ -type f -exec sh -c 'sed -bne "/\r$/ {p;q}" < "$1" | grep -q .' sh {} \; -print
И я думаю, что знаю почему grep -l ^M hello.*
не работает в этой оболочке: это кажется этим в Bash Мерзавца ^M
символы удалены из всех параметров командной строки, таким образом, grep
никогда на самом деле получает символ и поэтому все соответствие файлов. Это поведение не находится только на командной строке, но и в сценариях оболочки также.
Таким образом, ключ должен выразить ^M
символ с другими символами, такой как \r
, вместо буквально.
Используя eval
является неправильным во-первых. Оболочка уже оценила то, чему Вы передаете FUNCexecEcho
, оценка во второй раз является неправильной и потенциально опасной. В Вашем коде Вы также отбрасываете статус выхода команды.
FUNCexecEcho() {
echo "EXEC: $@"
"$@"
}
(без проблем с псевдонимами там, если Вы не определяете псевдоним для "$@"
). Сравните поведение в:
FUNCexecEcho echo 'this;rm -rf "$HOME"'
с этими двумя версиями. С моим это дает:
$ FUNCexecEcho echo 'this;rm -rf "$HOME"'
EXEC: echo this;rm -rf "$HOME"
this;rm -rf "$HOME"
Я предлагаю, чтобы Вы не выполняли его с Вашим, если у Вас нет резервных копий ;-)
Можно также использовать команду, command
. Как так:
$ alias echo="command echo 'hi: '"
$ echo "blah"
hi: blah
Но я могу обойти псевдоним echo
как так:
$ command echo "blah"
blah
Заметьте, что я на самом деле использовал command
в моем alias
определение также. Это избегает псевдонима от цикличного выполнения назад на себе.
Используйте обратную косую черту перед командой, для которой Вы не нуждаетесь в псевдониме.
Например: Я использую \ls
когда я не хочу вызывать искаженную версию ls
который является ls -thor
.
В случае оценки Вам будет нужна двойная обратная косая черта, например. eval \\ls
.
eval "\\$@"
обработанный, и я мог удалить их shopt
, Спасибо! спасибо
– Aquarius Power
26.01.2014, 22:49
eval
. – Aquarius Power 27.01.2014, 05:55