одиночные кавычки не работают в сценарии оболочки - PullRequest
2 голосов
/ 23 января 2010

У меня есть скрипт .bash_profile, и я не могу заставить работать следующее псевдоним lsls = 'ls -l | сортировка -n + 4 '

когда я набираю псевдоним lsls это делает сортировку, но затем отправляет это сообщение об ошибке "-bash: +4: команда не найдена" Как заставить псевдоним работать с '+4'?

Работает, когда наберите ls -l | сортировать -n +4 в командной строке

Я в OS X 10.4

Спасибо за любую помощь

Ответы [ 3 ]

3 голосов
/ 23 января 2010
bash-4.0$ ls -l | sort -n +4
sort: open failed: +4: No such file or directory

Вам нужно ls -l | sort -n -k 5, сортировка gnu отличается от сортировки bsd

alias lsls='ls -l | sort -n -k 5'

Редактировать: обновлено, чтобы отразить изменение с индексации на основе 0 до индексации на основе 1, спасибо Мэтью.

1 голос
/ 24 января 2010

alias lsls='ls -l | sort -n +4' должен нормально работать с sort в OS X 10.4 (который поддерживает этот синтаксис).

когда я набираю псевдоним lsls, он выполняет сортировку, но затем выдает это сообщение об ошибке «-bash: +4: команда не найдена»

Возможно ли, что вы добавили новую строку при редактировании .bash_profile? например если вы получили что-то вроде этого:

alias lsls='ls -l | sort -n
+4'

... это может объяснить сообщение об ошибке.


Кроме того, вы можете получить тот же эффект, вообще не пропуская sort, используя:

ls -lrS
0 голосов
/ 23 января 2010

Эта ссылка описывает очень похожий псевдоним, содержащий канал.

Возможно, проблема не в канале, но интересное решение заключалось в использовании функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...