system_profiler SPHardwareDataType | sed -n 's/^ *Memory: //p'
p
вот флаг к s
команда (как g
), не p
команда и средства печатают пространство шаблона, если замена происходит. Вам не нужно g
здесь, так как шаблон может только соответствовать однажды.
Я только что создал эти псевдонимы (я использую Bash)
christian@fujiu1404:~$ alias ta='cd tmp ; date'
christian@fujiu1404:~$ ta
Wed Sep 17 14:47:16 BST 2014
christian@fujiu1404:~/tmp$ alias ta='cd tmp && date'
christian@fujiu1404:~/tmp$ cd ..
christian@fujiu1404:~$ ta
Wed Sep 17 14:48:28 BST 2014
christian@fujiu1404:~/tmp$
, и они работают!
Вы должны идти другим путем. Добавьте строку в конце вашего .bashrc
, которые изменяют каталог в последнем каталоге, предыдущий экземпляр Bash был в виде CWD
(текущий рабочий каталог).
Такая строка сработала для меня:
cd $(readlink "/proc/$(echo -n $(ps -u $(whoami) -eo stat,pid,cmd | awk '$3 == "'$(which bash)'" && $1 ~ /\+/{print $2}' | sort | head -1))/cwd")
Объяснение :
CD $ (...)
: изменения каталога на то, что можно определить ниже ReadLink / proc / $ (. ..) / cwd
: считывает ссылку, в которой / proc / pid / cwd
указывает на (текущий рабочий каталог) echo -n $ (...)
: удаляет Training Newline PS -U $ (WHOAMI) -EO STAT, PID, CMD
: показывает мой процесс в простом формате awk '$ 3 == "$ (какой bash)'" && $ 1 ~ / \ + / {print $ 2} '
Если это Bash
и Bash
находится в группе процесса переднего плана (указана +
в STAT
поле), затем распечатать PID Сортировка | Head -1
Мы хотим только самую низкую PID редактировать:
в вашем случае это может быть лучшее решение:
cd $(readlink /proc/$(pgrep -n meteor)/cwd)
определяет PID новейшего экземпляра METEOR
и Изменения в этом текущем рабочем каталоге.