下付き文字で-eを読む

下付き文字で-eを読む

script1.sh次のソースがあるとしますscript2.sh

スクリプト1:

#!/bin/bash
# script 1
echo "Doing some stuff..."
bash script2.sh
echo "Done"

スクリプト2:

#!/bin/bash
# script 2
printf "\r  [ \033[0;33m?\033[0m ] What is your name? "
read -e name
echo "$name"

そして通話bash script1.shもエレガントに機能します。

私は次のようなことをしようとしています。ここそして実行しますが、スクリプトをwget -O - https://raw.githubusercontent.com/caarlos0/dotfiles/install/script/install | bash実行すると失敗します。script/bootstrapread -e

対話を強制するためにこのフラグを試してみましたが、-i成功しませんでした。

どんなアイデアがありますか?

ベストアンサー1

アイデア:bash標準入力でパイプを使用して実行しています。その後、標準入力から読み込むように要求します。それは動作しません。

代わりに名前付きパイプを使用しますか?

ETA:それとも違うかも…

mkfifo ~/tmp-pipe
wget -O - https://raw.githubusercontent.com/caarlos0/dotfiles/install/script/install > ~/tmp-pipe &
bash ~/tmp-pipe
rm ~/tmp-pipe

この時点で、既存のファイルの一部が破損していないことを確認するには、一時ファイルを使用することをお勧めします。処理すべき混乱が少なくなります。

P=$( mktemp )
wget -O - https://raw.githubusercontent.com/caarlos0/dotfiles/install/script/install > $P &
bash $P
rm $P

はい。わかりません。

おすすめ記事