我希望确保在登录时node
正在运行。所以在我的.bashrc
文件中我有:
pkill node
sleep 1
node server.js &
当然,这不会检查node
是否正在运行......它只会杀死它并再次启动它。相反,我想要这样的事情:
node_process = $(pidof node)
if [not_exists node_process]; then
node server.js &
fi
问题是not_exists
方法似乎不存在:)。如何测试Bash中是否存在数字或字符串,这是确保节点在登录时启动并运行的最佳方法吗?
答案 0 :(得分:3)
您可以使用-z
检查字符串是否为空:
node_process_id=$(pidof node)
if [[ -z $node_process_id ]]; then
node server.js &
fi
如果找不到匹配的进程,则 pidof
不返回任何内容,因此node_process_id
将设置为空字符串。