Как к имени файла 'кошки', возвращенному, 'который'?

Я ответил на этот вопрос, но поймите, что это могло быть лучше.

Как может я преобразовывать:

$ which gjslint
$ cat /usr/local/bin/gjslint

Во что-то вроде этого:

$ cat < which gjslint
-bash: which: No such file or directory

.. так, чтобы вывод path+filename от which передается на cat который затем делает это - вещь (т.е. печать содержания имени файла на экран).

2
задан 23 May 2017 в 15:39

2 ответа

Обратные галочки использования:

cat `which gjslint`

Если путь содержит пробел (вряд ли с путями по умолчанию), необходимо поместить его в круглые скобки:

cat "`which gjslint`"

Альтернатива была бы cat "$(which gjslint)". Причина я использую обратные галочки вместо $() то, потому что легче ввести, два нажатий клавиш одной рукой по сравнению с 4 нажатиями клавиш двумя руками. Я знаю о недостатках использования ` $(), но они делают не применяются в этом случае. Вы не собираетесь вкладывать обратные галочки или наклонные черты использования для того, чтобы быстро найти программу.

7
ответ дан 2 December 2019 в 01:41

То, что Вы имеете в связанном вопросе:

$ cat $(which gjslint) | grep [0-9] --color=always

То, что можно сделать:

$ grep '[0-9]' --color=always "$(which gjslint)"

Существуют моменты, которые необходимо отметить, пары:

  • никакая потребность к cat файл. grep берет файлы в качестве аргументов
  • одинарная кавычка Ваш regex; причина этого состоит в том, потому что оболочка попытается расшириться [0-9] как имена файлов. Если бы были файлы 0,1,2,3 и так далее к 9, то оболочка развернула бы Вашу команду до grep 0 1 2 3 ... и остальная часть args. Попытайтесь делать это - touch 0 1 2 && stat [0-2], и Вы будете видеть. Это может стать проблемой, если необходимо передать вывод grep где-то в другом месте
0
ответ дан 2 December 2019 в 01:41

Другие вопросы по тегам:

Похожие вопросы: