我正在尝试在shell脚本中编写代码。当我尝试将代码从批处理脚本转换为外壳脚本时,出现错误。
批处理文件代码
:: Create a file with all latest snapshots
FOR /F "tokens=5" %%a in (' ec2-describe-snapshots ^|find "SNAPSHOT" ^|sort /+64') do set "var=%%a"
set "latestdate=%var:~0,10%"
call ec2-describe-snapshots |find "SNAPSHOT"|sort /+64 |find "%latestdate%">"%EC2_HOME%\Working\SnapshotsLatest_%date-today%.txt"
外壳脚本中的代码
#Create a file with all latest snapshots
FOR snapshot_date in $(' ec2-describe-snapshots | grep -i "SNAPSHOT" |sort /+64') do set "var=$snapshot_date"
set "latestdate=$var:~0,10"
ec2-describe-snapshots |grep -i "SNAPSHOT" |sort /+64 | grep "$latestdate">"$EC2_HOME%/SnapshotsLatest_$today_date"
我想根据日期对快照进行排序,并将最新日期创建的快照保存在文件中。
ece-describe-snapshots的样本输出:
`SNAPSHOT snap-5e20 vol-f660 completed 2013-12-10T08:00:30+0000 100% 109030037527 10 2013-12-10: Daily Backup for i-2111 (VolID:vol-f9a0 InstID:i-2601)`
它将包含这样的记录
snaphsot的最新文件应包含:
SNAPSHOT snap-cdd617f3 vol-f66409a0 completed 2013-12-04T09:24:50+0000 100% 109030037527 10 2013-12-04: Daily Backup for Sanjay_Test_Machine (VolID:vol-f66409a0 InstID:i-26048111)
SNAPSHOT snap-c7d617f9 vol-3d335f6b completed 2013-12-04T09:24:54+0000 100% 109030037527 10 2013-12-04: Daily Backup for sachin_test_VPC (VolID:vol-3d335f6b InstID:i-e1c443d6)
任何建议或线索表示赞赏。
它是一种代码气味,您必须两次运行命令。
不清楚您是否只需要最近一天的台词。尝试这个:
ec2-describe-snapshots | sort -rk 5 | awk '
$1 != "SNAPSHOT" {next}
NR == 1 { split($5, a /T/); date = a[1]; }
$5 ~ date {print}
' > "$EC2_HOME/SnapshotsLatest_$today_date"
如果您只想要 今天 的快照,那就更容易了
today=$(date +%F)
ec2-describe-snapshots | sort -rk 5 | awk -v date=$today '
$1 == "SNAPSHOT" && $5 ~ date {print}
' > "$EC2_HOME/SnapshotsLatest_$today"
问题内容: 我想知道是否有可能告诉bash 分别对stdout / stderr的所有调用或随后的后续调用? 一种快速而又肮脏的解决方案是编写自己的printf实现,并使用它代替内置的任何实现,但是在我看来,我可能不需要这样做。 我正在编写同时运行的多个构建脚本,出于调试的需要,我 确实 需要查看它们按顺序编写的消息。 问题答案: 如果命令使用stdio并连接到终端,则会按行刷新它们。否则,您需要
终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要。下面笔者就带你正式进入shell脚本的世界吧。 到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到底什么是shell脚本。首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的s
bash csh ksh zsh 基本语法 定义和使用变量 #!/bin/sh a=" hello world" echo $a echo 'a is xiaxaiwen${a}' if else if ....; then .... elif ....; then .... else .... fi [] 条件测试 [] 中前后一定要加空格 sh
Invoke-WebRequest:请求中止:无法创建SSL/TLS安全通道。在C:\users\njujjavarapu\desktop\snapshot.ps1:8 char:1+Invoke-WebRequest-uri https://njidlsdsapp01/support invoke-RestMethod:请求中止:无法创建SSL/TLS安全通道。在C:\users\njujjav
问题内容: 我尝试谷歌搜索答案,但没有运气。 我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。 例如我要执行 如何做到这一点? 问题答案: 只需确保python可执行文件在PATH环境变量中,然后在脚本中添加 细节: 在文件job.sh中,放入 执行此命令以使脚本可运行: 运行 :
问题内容: 我想从PHP脚本执行系统上存在的Bash脚本。我的系统上有两个脚本。其中一个是称为at at 的PHP脚本,另一个是称为at at 的Bash脚本。 我的client.php脚本看起来像 我的睾丸看起来像 当我在终端上执行以下操作时 我在终端上得到以下输出 但是当我在打开页面时 我得到以下输出 即使执行了chmod + x testscript,我仍然收到此错误。 我如何从浏览器中获取