bashがreadとsedを組み合わせてスクリプトに変数を挿入するようにしてください。 sedになる必要はありませんが、そうです。
このように:
INTERNAL="`read -p "PATH " path` | sed -i '3i\$INTERNAL="/run/media/blah" blah.sh
Pythonを実装することもできます。私のプロジェクトはシェルで書かれていますが、setup.py
最初の実行にはスクリプトを使用できます。
最初の実行中に変数を設定し、後で使用するために保存するスマートスクリプトを作成しようとしています。この場合、$ HOMEのバックアップに使用される外部/内部デバイスのパスです。スクリプトがファイルを検索するようにします。 ($HOME/.already_ran.txt
スクリプトが以前に実行されたことを確認するために検索する隠しダミーファイル)ファイルが見つからない場合、ユーザーに変数(この場合はパス)の入力を求められます。私は彼らが手動でスクリプトを開き、変数を追加したくありません。
ベストアンサー1
#!/bin/bash
conffile=$HOME/.myscript.env
if [[ -f $conffile ]]; then
if ! source "$conffile"; then
printf 'Error parsing configuration file "%s"\n' "$conffile"
exit 1
fi
else
read -p 'Please enter device path: ' devpath
# further steps to verify correctness of $devpath here
# then...
declare -p devpath >"$conffile"
fi
# the rest of the script using "$devpath" goes here
declare -p varname
bash
変数varname
とその現在の値を定義するステートメントが出力されます。これをファイルに書き込むと、変数の再作成に使用できるファイルが提供されます。
devpath
一部のパス名を含む単純なシェル変数の場合は、次のように/some/path
作成します。$conffile
declare -- devpath="/some/path"
if
コマンドを囲む - ドアはsource
誰かが改ざんされた場合を保証します。通事論シェルがファイルを読み取れず、スクリプトが終了するようにファイルを保存します。
declare -p
後で再構成するために、環境変数、配列変数などをファイルに保存するためにも使用できます。