[解決済み】URLからbashスクリプトを実行する。
2022-04-16 13:43:01
質問
URL "http://mywebsite.com/myscript.txt"に、スクリプトを含むファイルがあるとします。
#!/bin/bash
echo "Hello, world!"
read -p "What is your name? " name
echo "Hello, ${name}!"
そして、このスクリプトをファイルに保存せずに実行したいのですが。どうすればいいのでしょうか?
さて、構文を見てみました。
bash < <(curl -s http://mywebsite.com/myscript.txt)
しかし、これではファイルに保存してから実行した場合のようにはいかないようです。例えばreadlineは機能せず、出力はただのものです。
$ bash < <(curl -s http://mywebsite.com/myscript.txt)
Hello, world!
同様に、試してみました。
curl -s http://mywebsite.com/myscript.txt | bash -s --
同じ結果で
元々はこんな解決策を考えていました。
timestamp=`date +%Y%m%d%H%M%S`
curl -s http://mywebsite.com/myscript.txt -o /tmp/.myscript.${timestamp}.tmp
bash /tmp/.myscript.${timestamp}.tmp
rm -f /tmp/.myscript.${timestamp}.tmp
しかし、これでは杜撰な印象を与えるので、もっとエレガントなソリューションが欲しいところです。
URLからシェルスクリプトを実行することに関するセキュリティの問題は承知していますが、今はすべて無視しましょう。
解決方法は?
source <(curl -s http://mywebsite.com/myscript.txt)
を実行する必要があります。 あるいは、標準入力をリダイレクトする最初のリダイレクトを省いてください。
bash
はファイル名を受け取ってリダイレクトなしでうまく実行されますし
<(command)
の構文は、パスを提供します。
bash <(curl -s http://mywebsite.com/myscript.txt)
の出力を見ていただくとわかりやすいかもしれません。
echo <(cat /dev/null)
関連
-
[解決済み] at&tアセンブリの「push」と「pushq」の違いは何ですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】画面 ターミナル '/dev/pts/0' を開くことができない - 確認してください。
-
[解決済み] sysrootとは何ですか、そしてどのように作成しますか?
-
[解決済み】git clone時に「'https'のリモートヘルパーが見つかりません。
-
[解決済み] linuxでpsから特定のプロセスをgrepする方法は?
-
[解決済み] Ubuntuにchkconfigをインストールするにはどうしたらいいですか?
-
[解決済み] glibc: elfファイルのOS ABIが無効です。
-
[解決済み] svn diffコマンドの使用
-
[解決済み] Linuxです。WGET -i オプションを使用したスキームが見つからない
-
[解決済み] Linuxで.dllを使用することは可能です [重複].
-
[解決済み] VIMでの検索と置換の結果、末尾の文字が表示される