diff --git a/cylc/flow/etc/job.sh b/cylc/flow/etc/job.sh
old mode 100644
new mode 100755
index 1a20a88071f..110fdc0d24c
--- a/cylc/flow/etc/job.sh
+++ b/cylc/flow/etc/job.sh
@@ -95,6 +95,7 @@ cylc__job__main() {
CYLC_TASK_WORK_DIR_BASE="${CYLC_TASK_CYCLE_POINT}/${CYLC_TASK_NAME}"
fi
export CYLC_TASK_WORK_DIR="${CYLC_WORKFLOW_WORK_DIR}/${CYLC_TASK_WORK_DIR_BASE}"
+ export CYLC_SHARE_CYCLE_DIR="${CYLC_WORKFLOW_SHARE_DIR}/cycle/${CYLC_TASK_CYCLE_POINT}"
typeset contact="${CYLC_WORKFLOW_RUN_DIR}/.service/contact"
if [[ -f "${contact}" ]]; then
# (contact file not present for polled platforms)
@@ -135,6 +136,7 @@ cylc__job__main() {
export PYTHONPATH="${CYLC_WORKFLOW_RUN_DIR}/share/lib/python:${CYLC_WORKFLOW_RUN_DIR}/lib/python:${PYTHONPATH:-}"
# Create share and work directories
mkdir -p "${CYLC_WORKFLOW_SHARE_DIR}" || true
+ mkdir -p "${CYLC_SHARE_CYCLE_DIR}" || true
mkdir -p "$(dirname "${CYLC_TASK_WORK_DIR}")" || true
mkdir -p "${CYLC_TASK_WORK_DIR}"
cd "${CYLC_TASK_WORK_DIR}"
diff --git a/tests/functional/jobscript/02-share-cycle-cycle.t b/tests/functional/jobscript/02-share-cycle-cycle.t
new file mode 100644
index 00000000000..f41b5f6662d
--- /dev/null
+++ b/tests/functional/jobscript/02-share-cycle-cycle.t
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+# THIS FILE IS PART OF THE CYLC WORKFLOW ENGINE.
+# Copyright (C) NIWA & British Crown (Met Office) & Contributors.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# Assert that workflow/share/cycle/ is created and exported.
+
+. "$(dirname "$0")/test_header"
+set_test_number 4
+
+# Setup:
+install_workflow "${TEST_NAME_BASE}" "${TEST_NAME_BASE}"
+run_ok "${TEST_NAME_BASE}.validate" cylc validate "${WORKFLOW_NAME}"
+workflow_run_ok "${TEST_NAME_BASE}.play" cylc play --no-detach "${WORKFLOW_NAME}"
+
+grep_ok "Hello World" "${WORKFLOW_RUN_DIR}/share/cycle/19900211T0000Z/stuff"
+grep_ok "Hello World" "${WORKFLOW_RUN_DIR}/share/cycle/19900212T0000Z/stuff"
+
+purge
diff --git a/tests/functional/jobscript/02-share-cycle-cycle/flow.cylc b/tests/functional/jobscript/02-share-cycle-cycle/flow.cylc
new file mode 100644
index 00000000000..b8d08fe942f
--- /dev/null
+++ b/tests/functional/jobscript/02-share-cycle-cycle/flow.cylc
@@ -0,0 +1,11 @@
+[scheduling]
+ initial cycle point = 19900211
+ final cycle point = 19900212
+ [[graph]]
+ P1D = task
+
+[runtime]
+ [[task]]
+ script = """
+ echo "Hello World" > "${CYLC_SHARE_CYCLE_DIR}/stuff"
+ """
\ No newline at end of file