gpt4 book ai didi

linux - 在 Bash 脚本变量中使用命令

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:40 25 4
gpt4 key购买 nike

我有一个检查 Dropbox 当前状态的 bash 脚本

#!/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

的新手

感谢您的帮助。

最佳答案

使用 printfcommand 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

但是没有所有的临时变量

关于linux - 在 Bash 脚本变量中使用命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36715518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com