![bash 구성 파일에서 별칭의 명령 대체가 해결되었습니까? [복사]](https://linux55.com/image/30495/bash%20%EA%B5%AC%EC%84%B1%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%B3%84%EC%B9%AD%EC%9D%98%20%EB%AA%85%EB%A0%B9%20%EB%8C%80%EC%B2%B4%EA%B0%80%20%ED%95%B4%EA%B2%B0%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
내 Mac 주소를 무작위로 변경하기 위해 별칭을 만들고 싶습니다.
alias chrandmac="sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')"
하지만 명령 대체 부분은 구성 파일 실행 시 해결되었습니다.
alias chrandmac='sudo ifconfig en0 ether 83:3a:bf:fc:4e:29'
왜 이런 일이 발생하는지에 대한 아이디어가 있습니까?
답변1
별칭 대신 함수를 사용하고 싶습니다. 별칭처럼 시작 파일에 넣을 수 있습니다.
chrandmac() {
sudo ifconfig en0 ether $(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
}
별칭과 함께 작동하려면 작은따옴표를 사용하여 명령 대체의 확장을 방지해야 합니다.
alias chrandmac='sudo ifconfig en0 ether $(openssl rand -hex 6 | sed '\''s/\(..\)/\1:/g; s/.$//'\'')'