パイプを使用すると、単純なシェル組み込みコマンドを使用してファイルを生成できます。
{ echo "#!/bin/bash" \
echo "echo Hello, World!" \
} > helloworld.sh
これがあればchmod
実行可能です。
$ chmod 755 helloworld.sh
$ ./helloworld.sh
Hello, World!
この手順を保存できるかどうかを知りたいですchmod
。私は見つけたumask
操作を完了できません。。しかし、誰かが環境変数、bashトリック、パイプ、またはこれを行う他の賢い方法を知っているかもしれません。
実行可能ビットが設定されたファイルを生成できますか?
ベストアンサー1
シェルリダイレクト演算子だけでは実行可能ファイルを生成できません。移植可能な方法はなく、bashには方法がありません(ソースコードでリダイレクト呼び出しを見ることができます)。do_redirection_internal
どの着信電話 redir_open
パラメータはmode
0666に設定されており、open
モードは順次呼び出されます。)
とにかくシェルコマンドを呼び出すので、; chmod +x …
どこかに追加してください。まったく問題ありません。コードを1行だけ追加しても問題にはなりません。 3つのタスク(与えられた内容でファイルを作成し、ファイルを実行可能にして実行)を実行する必要があるため、3行を作成します。
指定された特定の内容を含む実行可能ファイルを生成する比較的あいまいなシェルコマンドがあります。uudecode
。しかし、使用をお勧めしません。読み取れない形式で入力を渡す必要があり、ユーザーのumaskをバイパスしてあいまいです。
ファイルの実行に使用するインタプリタを知っている場合は、bash /the/script
代わりに呼び出すのが賢明な選択です。chmod +x /the/script && chmod +x