使用AWK更改脚本中的变量

时间:2016-06-27 03:40:29

标签: bash variables awk sed scripting

这是bash脚本。
Counter.sh:

#!/bin/bash
rm -rf home/pi/temp.mp3
cd /home/pi/
now=$(date +"%d-%b-%Y")
count="countshift1.sh"
mkdir $(date '+%d-%b-%Y')


在这个脚本的第5行,count变量......我只是想知道如何使用AWK将整数1(第18个字符,感谢响应)更改为3然后保存Counter.sh文件。

2 个答案:

答案 0 :(得分:1)

这基本上是http://mywiki.wooledge.org/BashFAQ/050 - 假设你的脚本实际上在某个地方$count实际上做了某些事情,你应该重构一下以避免这种反模式。有关此主题的更多信息,请参阅链接的常见问题解答。

话虽如此,如果不对实时代码进行更改,在此处执行操作并不困难。考虑像

这样的东西
awk 'END { print 5 }' /dev/null > file

cron工作或类似工作(使用Awk只是因为你的问题要求它,而不是因为它是这项工作的最佳工具)然后在你的主脚本中使用该文件; < / p>

read index <file
count="countshift$index.sh"

虽然这表面上删除了动态更改脚本的要求(这是一个很大的胜利),但你仍然有另一个讨厌的问题(变量中的代码!),你应该找到一个更好的方法来解决它。 / p>

答案 1 :(得分:0)

我不认为awk是理想的工具。有很多方法可以做到这一点。

我会使用Perl。

perl -pi -e 's/countshift1/countshift3/' Counter.sh