自動chrootスクリプトの変数に出力を割り当てる

自動chrootスクリプトの変数に出力を割り当てる

私は生涯の間にスクリプトを介してルートを変更し、変数に値を割り当てる方法を理解することはできません。いいですね。スクリプトフローを中断することなく、スクリプトからコマンドをルートに移動して実行する方法を学びました。

#!/bin/bash
# Mini script for chrooting into chroot_dir and executing commands.

chroot_dir=$1
cat << EOF | chroot $chroot_dir /bin/bash
sysname=\`hostname\`
echo "You are running script.sh on ${sysname}"
EOF

このスクリプトを実行すると、./script.sh "/chroot_dir/"次の結果が表示されます。

script.shを実行しています。

sysnameが割り当てられていないか、sysnameがすぐにその値を失うようです。この方法を使用してchrootのsysnameに値を割り当てるにはどうすればよいですか?

答え1

なぜなら、${sysname}後で実行するのではなく、スクリプトを読むときに評価されるからです。\dollar()の前にバックスラッシュ()を追加すると、うまく$機能します。とは何の関係もありませんが、その機能であることに注意してchrootくださいbash

関連情報