2017-06-28 23 views
0

シェルスクリプトの新機能です。DISPLAY変数を格納し、qloginコマンドを使用してDISPLAY変数をhostname + screen数。
sourceコマンドを使用しないと表示変数は変更されませんが、sourceコマンドを使用すると、エクスポートコマンドが無効であると表示され、qloginコマンドを実行できません。ログイン用スクリプトを使用してコマンドを実行することはできません。また、DISPLAY変数を設定することもできません。

はここでBashのキーワードではなく、tcsh私のスクリプト

#!/bin/bash 
#!/usr/bin/env tcsh 
dis=$DISPLAY 
echo $dis 
x="$(hostname)" 
v="$x$dis" 
echo $v 
export DISPLAY=$v 
echo $DISPLAY 

答えて

0

exportされています。あなたが調達しているならば、最初の行を削除することができます。これは、とにかく同じシェルに入っていることを期待しています。そして、新しいプロセスを望まない(この行は無関係です)。

あなたには、いくつかの理由でtcshを使用したい、またはtcsh使用して、新しい環境開始しない場合:

setenv DISPLAY whatever 

代わりの輸出を。また、通常の変数は:

set x=`hostname` 
set v=$x$dis 

$()構成体がありません。 tcshを本当に送ってもよろしいですか?

+0

qloginコマンドを使用しているため、ソースを用意する必要がありました。私はそれを調達せずに動作させようとしましたが、qloginは動作しません。そう。私はすべてのコマンドをtcsh形式に変更し、現在はqloginになっていて、すべて正常に動作しています。しかし、ホスト名+画面を持つ変数は、qloginコマンドの後で失われます。あなたはこれを解決する方法を知っていますか? –

+0

@RahulkumarBudhwaniどちらか? 'v'?あなたは何を失ったのですか?新しいスクリプトをあなたの質問に投稿してください。また、 '#!/ bin/bash'を削除してください。 – kabanus

+0

私はそれを変数 "v"に保存し、qloginの実行後にvに格納された文字列がないとします。 –

関連する問題