5

/bin/bash2つのパラメータ-cと、を使用してプロセスを実行するとSomeUserInput

SomeUserInputはecho $TERM

出力は

xterm-256color

コマンドラインパラメータを/bin/bash介して$TERMの値を設定して、上記の呼び出しでecho $TERM指定した他の何かを出力する方法はありますか?

(はい、私はman bash他の場所を掘り下げて検索しましたが、答えを見つけることができませんでした。おそらくそこにあると思いますが。)

4

2 に答える 2

7

まず、二重引用符を使用したため、呼び出したbashではなく、現在のシェルでTERMの値が出力されます。これを行うには、を使用します/bin/bash -c 'echo $TERM'

TERMの値を設定するには、export TERM=linuxそのコマンドを実行する前に、TERM=linux /bin/bash -c 'echo $TERM'(シェル式)または/usr/bin/env TERM=linux /bin/bash -c 'echo $TERM'(execve互換(find -exec)の場合)のいずれかを使用して、そのシェルに対してのみ値を設定できます。

更新:コマンドラインパラメーターのみを使用しての編集については/bin/bash、次のように入力を変更せずに行うことができます。

/bin/bash -c 'TERM=something; eval "$1"' -- 'SomeUserInput'
于 2013-01-22T21:01:08.437 に答える
2

さて、あなたはあなたの.bashrcファイルに変数を設定するか、単にbash呼び出しで設定することができます:

/bin/bash -c "TERM=something-else; echo $TERM"
于 2013-01-22T20:57:45.923 に答える