私はUbuntu 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
正しく入力されたことを3回確認しました。私が間違って入力したか、間違って設定しましたか?
ベストアンサー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.