, 당신은 디렉토리 트리의 디렉토리 위로 이동 것을 좋아합니다.
이것은 스크립트는 .bashrc와 같이 별칭합니다 alias up1='cd../' alias up2='cd../../'
을 당신이 그것을 여러 번 스크립트 만 상자 기존되지 져야 할 엔트리를 실행하는 경우 등등, 나는 깊이 (9)를 제한합니다. 깊이를 줄이고 스크립트가이 별칭을 관리하면 항목을 삭제하도록 만들 수 있습니까?
자신이 찾고있는 스크립트가 아니기 때문에 자신의 인스턴스에서 스크립트를 실행 한 후에는 현재 쉘에 영향을 줄 수 없습니다. 또한이 스크립트가 별칭을 만든 후에는 다시 인증하거나 새 셸을 열어야합니다. 그 시점부터 .bashrc에서 별칭 항목을 삭제하지 않을 때까지 작동합니다.
#!/bin/sh
[[ ! $# == 1 ]] && echo "Only one parameter accepted" && exit 1
[[ $(echo $1 | grep -c ^[1-9]$) -eq 0 ]] && echo "parameter must be between 1 and 9" && exit 1
cdcommand=""
for ((i = 1 ; i <= $1 ; i++)); do
cdcommand=$(echo $cdcommand | sed 's/^/\.\.\//g')
[[ $(cat ~/.bashrc | grep -c "alias up$i='cd $cdcommand' ") == 0 ]] &&
echo "alias up$i='cd $cdcommand' " >> ~/.bashrc
done
스크립트는 하위 프로세스에서 실행됩니다. 환경에 대한 변경 사항은 호출 쉘에 영향을주지 않습니다. – Barmar
실행 가능 스크립트가 아닌 [function] (http://zsh.sourceforge.net/Doc/Release/Functions.html)로 만들 수 있습니까? –