Shell脚本中的动态变量

时间:2019-03-24 15:09:02

标签: linux shell

$('#nav-products LI A').each((i, el) => {
  console.log($(el).text());
  console.log($(el).attr('href'));
});

如您所见, 我正在使用终端创建外壳脚本文件。这里的问题是

  

FILESIZE = $(stat -c%s“ $ FILENAME”)

当我执行上述代码时,以上值保存在 FILESIZE 变量中。因此, FILESIZE 的值设置为常量。

因此,我希望每当我使用以下命令实际运行此Shell脚本时,Linux每次都会动态地选择FILESIZE的值。

  

/etc/rotatescript/truncate.sh

1 个答案:

答案 0 :(得分:0)

您需要转义子shell:

cat <<EOF > /etc/rotatescript/truncate.sh
FILENAME=/mnt/logs/filename
MAXSIZE=10000000000
FILESIZE=\$(stat -c%s "$FILENAME")
if (( FILESIZE > MAXSIZE )); then
    truncate -s 0 /mnt/logs/filename
else
    echo “nope”
fi

请注意\$,因为外壳程序实际上是在Heredoc内部执行替换,所以您需要对其进行转义以防止发生这种情况。您需要文字$