vim 플러그인 원격 목록을 파일로 출력하는 작은 스크립트를 만들어 어떤 항목을 유지하거나 삭제하고 싶은지 파악할 수 있었습니다. 그러나 실행하면 출력이 파일로 파이프되지 않습니다. 다른 모든 것은 정상적으로 작동합니다. 내가 여기서 뭘 잘못하고 있는 걸까?
#!/usr/bin/env bash
HERE=$(pwd)
for D in $HOME/.vim/plugged/*/; do
if [ -d "${D}" ]; then
cd "$D" || git remote -v >> "$HERE/vim-plug-remotes.txt";
fi;
done
cd "$HERE" || exit
답변1
cd "$D" || ...
디렉토리를 변경하거나 다른 작업을 수행하는 것입니다. 즉, cd
성공하면(반드시 그래야 함) git
실행되지 않습니다.
cd "$D" && git ...
CD를 들고 이런 일을 하는 것이 더 일반적입니다. ( bash -x
이런 종류의 디버깅에 편리합니다).
답변2
- &&
대신에 당신이 원하는 것이 논리적인 것처럼 들립니다.||
||
또는, git
실패 시에만 실행됩니다.cd
변화:
cd "$D" || git remote -v >> "$HERE/vim-plug-remotes.txt";
(세미콜론은 불필요하지만):
cd "$D" && git remote -v >> "$HERE/vim-plug-remotes.txt";