明示的に呼び出すと、 'set'コマンドはtcshシェルでは機能しません。

明示的に呼び出すと、 'set'コマンドはtcshシェルでは機能しません。

set次のように入力すると、コマンドは正しく機能します。

echo $0
/usr/bin/tcsh
echo $SHELL
/usr/bin/tcsh
set START_TIME=`date +%s`
echo $START_TIME
1499360060

tcshただし、次のように明示的に呼び出すと機能しません。

/usr/bin/tcsh -i -f -c 'set START_TIME=`date +%s`'
echo $START_TIME
START_TIME: Undefined variable.

最初はこれを試しましたが、setenv子プロセスがコマンドを実行できないことに気づきましたsetenv。だから私はsetそれが行く道だと思います。この問題を解決する他のより良い方法があるかどうかアドバイスしてください。ありがとうございます。

ベストアンサー1

問題は、サブシェルで変数を設定してからサブシェルが終了し、変数も一緒にインポートされることです。展示する:

$ /bin/tcsh -ifc 'set VARIABLE=foo; echo $VARIABLE'; echo ${VARIABLE-blank}
foo
blank

(私のデフォルトのシェルはですbash。2番目のシェルはismをecho使用してbash定義されていないか、NULL変数拡張のデフォルト値を提供します)

おすすめ記事