에서 https://unix.stackexchange.com/a/276611/674
때
bash
와 실행-c
, 그것은 비 대화 형 쉘을 고려, 그것은 읽지 않습니다~/.bashrc
하지 않는 한,-i
지정했습니다. 그래서,$ type cp cp is aliased to ‘cp -i’ # Defined in ~/.bashrc $ cp .file1 file2 cp: overwrite ‘file2’? n $ bash -c "cp .file1 file2" # Existing file is overwritten without confirmation! $ bash -c -i "cp .file1 file2" cp: overwrite ‘file2’? n
쉘이 bash -i -c <command>
대화식 또는 비 대화식으로 작성됩니까?
그런 쉘은 stdin의 명령을 받아들이지 않습니까? 그래서 그것은 상호 작용하지 않습니까?
이러한 쉘은을 읽으 ~/.bashrc
므로 비대화 형일 수 없습니다.
로부터 배쉬 참조 설명서 :
시작 스크립트 내에서 Bash가 대화식으로 실행 중인지 여부를 확인하려면 '-'특수 매개 변수의 값을 테스트합니다. 쉘이 대화식 일 때 i를 포함합니다.
이 예에서는
$ bash -c 'echo $-' # This is a non-interactive shell
hBc
$ bash -i -c 'echo $-' # This is an interactive shell
himBHc
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다