Macのコマンドラインからファイルを実行可能にすることはできません。端末にこのように入力しました。
cd ./Desktop
echo 'say hello' > hello
chmod +x hello
hello
ファイルをダブルクリックすると実行されますが、コマンドラインからは実行できません。 「コマンドが見つかりません」というメッセージが表示されます。
答え1
コマンドには2つのエラーがあります。
最初の間違いは、ファイルが正しい実行形式ではないことです。シェルスクリプトの最初の行はで始まる必要があります#!
。これらの文字で始まらないと、シェルスクリプトではありません。
一部のシェルには、これらの無効なシェルスクリプトの回避策があります。ただし、これらの回避策はスクリプトがシェルで起動された場合にのみ機能し、他のプログラムでスクリプトが起動された場合は機能しません。さらに、さまざまなシェルには、誤った形式のシェルスクリプトに対するさまざまなソリューションがあります。
全体的に言えば、これはこれらの回避策に依存すると予測不能な動作を引き起こすため、常にこの行を#!
含める必要があります。たとえば、次のように入力できます。
echo '#!/bin/sh' > hello
echo 'say hello' >> hello
別のエラーは、スクリプトを実行しようとしたときにスクリプトパスを提供しないことです。以下を入力する必要があります。
./hello
と入力すると、hello
シェルはからコマンドを検索しますPATH
。セキュリティ上の理由では.
ありません。シェルスクリプトPATH
を頻繁に作成する必要がある場合は、そのシェルスクリプト用のディレクトリを作成し、そのディレクトリをPATH
。~/bin