スクリプトの途中でユーザーを切り替えることができます。ここでdocを使用して別のユーザーとしてスクリプト内でコマンドを実行する
su - User << EOF
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" </dev/null
EOF
私の目標は、ユーザーとして実際にログインしたかのように、EOFデリミタの間でコードを実行することです。
真ん中の行はホームブリューをインストールすることになっています。ユーザーとしてログインし、それ自身の中間行を実行すると、うまくインストールされます。しかし、上記の完全なスクリプトを実行すると、私に問題を与える:
-e:5: unknown regexp options - lcal
-e:6: unknown regexp options - lcal
-e:8: unknown regexp options - Cach
-e:9: syntax error, unexpected tLABEL
BREW_REPO = https://github.com/Homebrew/brew.freeze
^
-e:9: unknown regexp options - gthb
-e:10: syntax error, unexpected tLABEL
CORE_TAP_REPO = https://github.com/Homebrew/homebrew-core.freeze
^
-e:10: unknown regexp options - gthb
-e:32: syntax error, unexpected end-of-input, expecting keyword_end
-bash: line 34: end: command not found
-bash: line 36: def: command not found
-bash: line 37: escape: command not found
-bash: line 38: end: command not found
-bash: line 40: syntax error near unexpected token `('
-bash: line 40: ` def escape(n)'
私が試した可能性だけではなく、自作のインストールが、時間のほとんどの問題を持っているの異なるコマンド。私がやろうとしているようにコマンドを「su」に渡すことと実際にそのユーザーとしてコマンドを実行することの違いは何ですか?
この場合、「sudo -u」を使用できませんか? –