给定下列变量:
echo ${userupper}_PYTHON
# YTU_PYTHON
echo $YTU_PYTHON
# /home/ytu/anaconda3/bin/python
echo $path
# foo.py
现在我要执行
/home/ytu/anaconda3/bin/python foo.py
userupper
和
path
. 我试过了
$(${userupper}_PYTHON) $path
YTU\u PYTHON:未找到
foo.py:未找到
好像要花点时间
$(${userupper}_PYTHON)
YTU_PYTHON
而不是预期的
$YTU_PYTHON
. 我该怎么做才能使它正确呢?
编辑:
建议的复制应该解决了我的问题。但是由于一些未知的原因,它不起作用。
#!/usr/bin/env bash
for user in ytu
do
. /home/${user}/.profile
userupper=$(echo ${user} | awk '{print toupper($0)}')
userpython=${userupper}_PYTHON
cd /home/${user}/H2-ML/crons
for path in $(ls | grep ^${user}_.*_monthly_report.py$)
do
echo ${userpython}
echo $path
echo $YTU_PYTHON
echo ${!userpython}
done
done
上面的代码块返回:
ytu\ U 249\ U月报.py
/主页/ytu/anaconda3/bin/python
发送月度报告。sh:14:发送月度报告。sh:替换错误
,这让我很困惑。