我试图设置一个带有外部配置文件的脚本,但没有运气开始工作:
我有一个配置文件,我想声明我的变量:
#!/bin/bash
screenname=template
我的脚本我在这个文件的点源。
#!/bin/bash
. config.sh
echo $screenname
screen -S $screenname -X stuff "Test\015"
screen -S template -X stuff "Test\015"
输出:
template
No screen session found.
屏幕上的名称为> template<正如您所见,$ screenname的值为> template<但第一个屏幕命令仍然返回没有找到屏幕会话...
希望有人可以帮我解决这个愚蠢的事情.. 谢谢
答案 0 :(得分:0)
将set -x
放在脚本顶部,执行“dotsourcing”(在shebang行#!/bin/bash
下方):
#!/bin/bash
set -x
. config.sh
echo $screenname
:
rest of script
这将在执行它之前输出每行,因为它会帮助你找出它无法正常工作的原因。您可能还想添加:
echo "[$screenname]"
echo "${#screenname]"
获取分隔版本和长度。
问题的一些可能性:
screenname
变量(虽然在这种情况下我不这么认为,因为bash
本身应该解释环境变量。)虽然我再次强调你应该执行建议的步骤来缩小或找出问题,而不是依赖于猜测。