繁体   English   中英

在Bash脚本变量中使用命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM