나는 PID와 내가 실행하는 두 개의 Rails 서버에 대한 기타 정보를 출력하는 데 사용하는 투박한 명령에 대한 별칭을 만들려고 합니다.
SSH를 통해 터미널에서 명령을 실행하면 다음과 같습니다.
vagrant@Railsvr:~$ ps aux | grep rails | grep -v grep | awk '{print $2, $12, $13, $14, $15}'
내가 원하는 정보를 얻었습니다.
3266 bin/rails server -dp 3000
3383 bin/rails s -dp 4000
하지만 ~/.bash_aliases(~/.bashrc에 포함됨)의 별칭에 넣으면
alias findrails_pid="ps aux | grep rails | grep -v grep | awk '{print $2, $12, $13, $14, $15}'"
출처 :
. ~/.bashrc
고장이 납니다...알겠습니다:
vagrant@Railsvr:~$ findrails_pid
awk: {print , 2, 3, 4, 5}
awk: ^ syntax error
이는 마치 $n(ps aux 명령의 열을 나타냄)이 어떤 이유로 제거된 것과 같습니다. 이것은 제가 만들려고 시도한 첫 번째 별칭입니다. 뭔가 빠졌나요?
이것이 중요한지 확실하지 않습니다. 시스템은 Debian 8.1 호스트의 libvirt-kvm이 호스팅하는 ubuntu Precision32 게스트 박스입니다.
답변1
예, 함수가 더 나을 수도 있지만 이 경우에는 큰따옴표를 사용했기 때문에 문제가 될 수 있습니다. $ 변수는 별칭에 할당되기 전에 확장됩니다. 외부에서 작은따옴표를 사용할 수 있습니다. 또는 이미 작은따옴표가 있으므로 $를 \로 이스케이프 처리할 수 있습니다.
별칭 findrails_pid="ps aux | greprails | grep -v grep | awk '{print \$2, \$12, \$13, \$14, \$15}'"