実行可能スクリプトを作成するための私のコード
touch script.sh && echo "echo 'Hello World'" > script.sh && sudo chmod +x script.sh
実行可能スクリプトを作成するための私のコード
touch script.sh && echo "echo 'Hello World'" > script.sh && sudo chmod +x script.sh
回答:
touchコマンド全体を省略でき、を使用する必要はありませんsudo。コマンドラインをさらに短くするには、bashHistory Expansionを使用してファイル名をもう一度保存し、不要なスペースを省略できます。
echo "echo 'Hello World'" >script.sh&&chmod +x !#:3
History Expansionは!#:3、現在のコマンドラインの4番目の単語(この場合はファイル名)に置き換えられますscript.sh。もちろん、これは最初のコマンドを変更する場合に適応する必要があります。例えば:
>script.sh echo "echo 'Hello World'"&&chmod +x !#:1
有効なスクリプトにはシバンが必要です。
>script.sh echo -e "#!/bin/bash\necho 'Hello World'"&&chmod +x !#:1
このコマンドチェーンがより頻繁に必要な場合は、関数を定義することをお勧めします。この方法では、関数名を入力するだけで済みます。同様に順応性があります–より長いです–方法はファイル名を保持する変数の使用です:
f=script.sh;>$f echo "echo 'Hello World'"&&chmod +x $f
installコマンド(GNUの部分は一緒にcoreutilsのcp、mv、rmまた、その所有権とアクセス権を設定し、必要に応じて親ディレクトリを作成中のファイルをコピーすることができ、など)。デフォルトでは、新しいファイルを実行可能にします。' -' は理解できませんが、/dev/stdin代わりに使用できます:
install /dev/stdin script.sh <<< "echo Hello World"
上記は ' here string 'を使用して、標準入力にテキストを提供します。これは、パイプで入力するよりも少し短いです。引数にecho特別な意味の文字が含まれていない限り、引用符は必要ありません。
また、chmod全体を省略して、エコーの前に代わりにumaskを使用することもできます。数バイト節約する必要があります。すべてのシェル(主にボーンとC)が理解できるコマンドを使用する限り、シバンはオプションです。
umaskデフォルトでは実行可能ビットを設定するために使用することはできません...
sudo非常に控えめに使うようにすべきです。捨てる習慣をつけるのは危険です。この場合、あなたが作成したスクリプトを所有しているので、sudoは必要なく、権限を使用して好きなことを実行できます。