我想问一下如何去掉变量存储数据开头的空格?我有一个MySQL COUNT
将从数据库获取的自动生成的脚本。
MYSQL COUNT SCRIPT
-> .ini file (variable holder / parameters)
->report-script
这意味着我有一个脚本将计算数据库中的一些数据,然后它将数据(.ini)
作为变量存储在文本文件中,然后另一个脚本将读取该文件并查找变量。
下面db-count-script.sh
是我的问题的一些相关代码。
#!/bin/bash
mysql_count=$(mysql ... -e"USE my_db;SELECT COUNT(*) FROM my_db.sr1 WHERE intime='1';"
echo $mysql_count #This is the output of this echo --> COUNT(*) 15
#from here I'm going to remove the COUNT(*)
cnt=${mysql_count//COUNT(*)}
#storing the data to the variable
echo "db_cnt=\""$cnt"\"" >> db-count.ini
里面db-count.ini
我有这个数据。
db_cnt=" 7"
我想删除该变量上的空格,因为我有脚本来像这样调用该变量,并且为了将来的使用,我确实需要清理变量的数据。
#!/bin/bash
source db-count.ini
echo "Count:"$db_cnt
#Output
Count: 7
有什么建议吗?尖端?
谢谢。
答案1
db_cnt
要在 bash 中删除变量前面的空格,请使用:
db_cnt="${db_cnt#"${db_cnt%%[![:space:]]*}"}"
例子:
$ db_cnt=" 7"
$ echo "$db_cnt"
7
$ db_cnt="${db_cnt#"${db_cnt%%[![:space:]]*}"}"
$ echo "$db_cnt"
7
$
您可以使用语法以任何您想要的方式自定义脚本。
答案2
一个简单的方法echo
将消除正面和背面的空间
db_cnt=$(echo $db_cnt)
如果你想删除前面的空格但想保留变量末尾的空格,你可以使用sed
as
db_cnt=$(echo "$db_cnt" | sed 's/^ *//')
答案3
将一行转换为数组并选择其数组位置将修剪空格。
while read input; do
if [[ $input =~ COUNT\(\*\) ]]; then
hunks=($input)
db_cnt=${hunks[1]}
echo $db_cnt
break;
fi
done < input