私はUNIXとシェルプログラミングの新人です。 chmod
コマンドを使用して、コマンドラインのテキストファイルを実行可能にしようとしています。UNIXでコマンドファイルを実行できないのはなぜですか?
はコードです:
$ls
a aa aba chapt1 chapt2 chapt3 newprog
$filename=ch
$cat newprog
echo a?* n* ${filename}*
$chmod +x newprog
$ls -l newprog
-rwxr-xr-x 1 xxxxx xxxxx 25 Apr 12 09:50 newprog
しかし、私は
newprog
でNEWPROGを実行したとき、私はviのコマンドを使用してNEWPROGを作成し、私はパテを使用しています
newprog: command not found
を得ました。 どちらの部分が間違っていましたか?
ベンジャミンWのおかげで、./newprogを使用するとファイルが実行可能になります。
しかし、結果は
aa aba newprog a aa aba chapt1 chapt2 chapt3 newprog
である私は、重複があるなぜ私が期待した結果が
aa aba newprog chapt1 chapt2 chapt3
あると思いますか?
あなたのパスにない場合は、同じディレクトリにいる場合や完全なパスの場合は '。/ newprog'と呼ぶ必要があります。 –
また、ファイルの上部に「shebang」を追加する必要があります。 https://stackoverflow.com/questions/8779951/how-do-i-run-a-shell-script-without-using-sh-or-bash-commands – dmb
説明を参照してください。http://unix.stackexchange .com/questions/4430/why-do-use-to-execute-a-file –