2

qusb の -V オプションは、環境変数のみをインポートし、 .bashrc からのエイリアスはインポートしません。例えば

### in .bashrc
alias ll='ls -ltr'
alias la='ls -A'
export PYTHONPATH=/local/python_other:$PYTHONPATH

そしてqsubスクリプトは

#!/bin/sh    
#$ -V
echo $PYTHONPATH
ls
ll
la

この場合echo $PYTHONPATH、正常にls動作しますがlllaエラーが発生しますll: command not found。では、エイリアス コマンドを qsub にインポートするにはどうすればよいでしょうか。

aliasまたは、コマンド(llまたはla)が同様に動作lsし、簡単にインポートできるようにするためのより良い代替手段はありますか

4

2 に答える 2

2

エイリアスは、コマンドラインの利便性を目的としています。スクリプトでの使用には適していません。ほとんどの場合、関数を使用する必要があります。関数は子 Bash スクリプトにエクスポートできますが、他の環境にはエクスポートできません。

そうは言っても~/.bashrc、qsub スクリプトで明示的に source を試すことができます。

. $HOME/.bashrc

また

source $HOME/.bashrc

これらのどれが qsub でサポートされているかわかりません。

于 2012-08-03T09:41:15.260 に答える
1

~/.bashrc対話モード以外でスクリプトを実行すると、解釈されません。対話モードをオンにする必要があります

#!/bin/bash -i

~/.bashrcまたは、スクリプトの先頭で明示的にインポートするだけです。

. ~/.bashrc
于 2012-08-03T09:42:58.053 に答える