人々が指摘するように、Bashは数字で始まる変数を許可していません。ただし、認識されない環境文字列は外部プログラムに渡されます。そのため、変数はに表示されますが、には表示されenv
ませんset
。
回避策として、次のような有効な名前を使用して、_64bit
実行するコマンドに無効な変数名を自動的に挿入できます。
#!/bin/bash
# Setup for injection hack
original=$PATH
PATH="/"
command_not_found_handle() {
PATH="$original" env "64bit=$_64bit" "$@"
}
# Your script and logic
_64bit="some dynamic value"
# This verifies that '64bit' is automatically set
env | grep ^64bit
この特定のメソッドは、相対パス名または絶対パス名を使用する場合ではなく、$PATHを介して呼び出す場合にのみ機能することに注意してください。
パス名で呼び出す場合は、代わりにPATHを変更して名前で呼び出すことを検討してください。