別のbashスクリプト内にbashスクリプトを挿入する正しい方法

別のbashスクリプト内にbashスクリプトを挿入する正しい方法

次のコードを提案または修正するか、可能であれば簡単に作成してください。

このファイルは単一のシェルスクリプトファイルに含める必要があります。

Embedded.sh

#!/bin/bash
echo '#!/bin/bash
read input
while [[ $input -eq Y ]]; do echo hi ; done ' > /tmp/test.sh
chmod ugo+w /tmp/test.sh ; chmod ugo+w /tmp/test.sh ; chmod ugo+x /tmp/test.sh
konsole -e sh /tmp/test.sh
rm /tmp/test.sh

ベストアンサー1

#!/bin/bash

out=/tmp/script.sh

data='
IyEvYmluL2Jhc2gKcmVhZCBpbnB1dAp3aGlsZSBbWyBcJGlucHV0IC1lcSBZIF1dOyBkbyAj
IG5vdGUgdGhlIGVzY2FwZWQgJCBoZXJlCiAgZWNobyBoaQpkb25lCg=='

base64 -d <<<"$data" >"$out" &&
chmod +x "$out"

埋め込みスクリプトをエンコードします。ここではbase64エンコーディングを使用しています。より大きなスクリプトの場合は、gzipエンコードを使用する前にデータを圧縮し、デコードを使用したbase64後に解凍しますbase64 -d <<<"$data" | gzip -cd >"$out"

おすすめ記事