저는 우분투 18.04 LTS를 실행하고 있습니다.
터미널에서 이 .bashrc
파일을 사용하는 것으로 나타났습니다. 나는 다음을 추가했다:
export PATH="/home/keaton/scripts/:$PATH"
파일에 복사하고 디렉토리에 스크립트를 만듭니다 scripts
. 간단한 스크립트는 다음과 같습니다:
echo "Hello World"
echo $(which neqn)
cat $(which neqn)
터미널에 들어가서 실행하면 다음과 같은 결과가 sh intro
나타납니다.
sh: 0: Can't open intro
디렉토리 경로가 scripts
올바르게 입력되었는지 세 번 확인했습니다. 제가 잘못 입력했거나 잘못 구성했나요?
답변1
을 사용하는 대신 sh
다음 bash
을 사용해 보십시오.
$ bash intro
Hello World
/usr/bin/neqn
#! /bin/sh
# Provision of this shell script should not be taken to imply that use of
# GNU eqn with groff -Tascii|-Tlatin1|-Tutf8|-Tcp1047 is supported.
GROFF_RUNTIME="${GROFF_BIN_PATH=/usr/bin}:"
PATH="$GROFF_RUNTIME$PATH"
export PATH
exec eqn -Tascii ${1+"$@"}
# eof
스크립트를 호출하면 sh
실제로는 이를 사용 bash
하지만 Bash의 이전 버전인 셸의 이전 버전처럼 동작하도록 만드는 모드에서 실행됩니다.
man bash
:
If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well. When invoked as an interactive login shell, or a non-interactive shell with the --login option, it first attempts to read and execute commands from /etc/profile and ~/.profile, in that order. The --noprofile option may be used to inhibit this behavior. When invoked as an interactive shell with the name sh, bash looks for the variable ENV, expands its value if it is defined, and uses the expanded value as the name of a file to read and execute. Since a shell invoked as sh does not attempt to read and execute commands from any other startup files, the --rcfile option has no effect. A non-interactive shell invoked with the name sh does not attempt to read any other startup files. When invoked as sh, bash enters posix mode after the startup files are read.