我有一个bash脚本,用于检查Dropbox的当前状态
#!/bin/bash
while true
do
echo Dropbox Status:
~/bin/dropbox.py status
sleep 1
clear
done
这会产生一个看起来像这样的输出。
Dropbox Status:
Up to date
但是我希望它看起来像这样。所以这一切都在一条线上
Dropbox Status: Update
我尝试了
等脚本#!/bin/bash
while true
do
STATUS=~/bin/dropbox.py status
echo Dropbox Status: $STATUS
sleep 1
clear
done
然而,这只会产生Dropbox Status.sh: status: not found
有办法做我想做的事吗?
此外,如果我明显很明显,我很抱歉,因为我是Bash Script
感谢您的帮助。
答案 0 :(得分:1)
您需要在状态var
中存储命令结果 STATUS=$(~/bin/dropbox.py status)
答案 1 :(得分:1)
使用printf
和command substitution:
printf "Dropbox Status: %s\n" "$(~/bin/dropbox.py status)"
或中间变量:
status=$(~/bin/dropbox.py status)
printf "Dropbox Status: %s\n" "$status"
另请记住引用您的变量,否则它们将经历word splitting
为什么STATUS=~/bin/dropbox.py status
不起作用?发生的是,调用命令status
时环境变量STATUS
设置为~/bin/dropbox.py
,与运行相同:
_status=$STATUS
export STATUS=~/bin/dropbox.py
status
export STATUS=_status
但没有所有临时变量