以下では、エコー出力は正しいが、pgmがフラグを正しく受信していない。任意の洞察力を感謝します。シェルの問題:複数のフラグを持つ変数をcmdに送信
script file:
flags="-umc -v -v "
r="";for d in `ls -d /tmp/passenger*`; do r="$r -x $d"; done
flags="$flags $r"
echo $flags
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix 240 /tmp
のsh -x
sh -x < ./tmpwatch
+ flags='-umc -v -v '
+ r=
++ ls -d /tmp/passenger.15264
+ for d in '`ls -d /tmp/passenger*`'
+ r=' -x /tmp/passenger.15264'
+ flags='-umc -v -v -x /tmp/passenger.15264'
+ echo -umc -v -v -x /tmp/passenger.15264
-umc -v -v -x /tmp/passenger.15264
+ /usr/sbin/tmpwatch '-umc -v -v -x /tmp/passenger.15264' \
-x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix \
-x /tmp/.ICE-unix -x /tmp/.Test-unix 240 /tmp
/usr/sbin/tmpwatch: invalid option --
tmpwatch 2.9.7 - (c) 1997-2006 Red Hat, Inc. All rights reserved.
This program may be freely redistributed under the terms of the
GNU General Public License.
は私が別の方法でコマンドに$フラグを供給する必要があると思う<スクリプトの出力...
ラリー
ありがとうございました。元のスクリプト(RedHatから)には引用符が付きました(旅客ディレクトリの行が追加される前)。とにかく、私は変数の補間をトリガするために引用符が必要だと思った。今私はよく知っている。 crontabで使用するためにスクリプトが/etc/cron.dailyにあることに違いはありますか?再びありがとう、ラリー –