gpt4 book ai didi

bash - 如何将命令的输出放入 bash 变量中?

转载 作者:行者123 更新时间:2023-11-29 09:12:27 25 4
gpt4 key购买 nike

我不记得如何将执行结果捕获到 bash 脚本中的变量中。

基本上我有一个文件夹,里面装满了以下格式的备份文件:备份--my.hostname.com--1309565.tar.gz

我想遍历所有文件的列表并从文件名中提取数字部分并对其进行处理,所以到目前为止我正在这样做:

HOSTNAME=`hostname`
DIR="/backups/"
SUFFIX=".tar.gz"
PREFIX="backup--$HOSTNAME--"
TESTNUMBER=9999999999


#move into the backup dir
cd $DIR

#get a list of all backup files in there
FILES=$PREFIX*$SUFFIX

#Loop over the list
for F in $FILES
do
#rip the number from the filename
NUMBER=$F | sed s/$PREFIX//g | sed s/$SUFFIX//g

#compare the number with another number

if [ $NUMBER -lg $TESTNUMBER ]
#do something

fi

done

我知道 "$F | sed s/$PREFIX//g | sed s/$SUFFIX//g" 部分正确地提取了数字(尽管我很欣赏可能有更好的方法这样做),但我不记得如何将该结果转换为 NUMBER,以便我可以在下面的 if 语句中重用它。

最佳答案

使用 $(...) 语法(或``)。

NUMBER=$( echo $F | sed s/$PREFIX//g | sed s/$SUFFIX//g )

NUMBER=` echo $F | sed s/$PREFIX//g | sed s/$SUFFIX//g `

(我更喜欢第一个,因为当多个嵌套时更容易看到。)

关于bash - 如何将命令的输出放入 bash 变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6387844/

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