[英]Using commands in Bash Script Variables
我有一个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
错误Dropbox Status.sh: status: not found
有什么办法可以做我所追求的吗?
另外,如果这很明显,我道歉,因为我是Bash Script
新手
谢谢你的帮助。
您需要将命令结果存储在状态var中
STATUS=$(~/bin/dropbox.py status)
使用printf
和命令替换 :
printf "Dropbox Status: %s\n" "$(~/bin/dropbox.py status)"
或带有中间变量:
status=$(~/bin/dropbox.py status)
printf "Dropbox Status: %s\n" "$status"
还请记住引用您的变量,否则它们会分词
为什么STATUS=~/bin/dropbox.py status
不起作用? 发生的情况是,使用环境变量STATUS
设置为~/bin/dropbox.py
调用命令status
,类似于运行:
_status=$STATUS
export STATUS=~/bin/dropbox.py
status
export STATUS=_status
但是没有所有的临时变量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.