关于使用bash脚本实现命令的几个问题

关于使用bash脚本实现命令的几个问题

我需要创建 bash 脚本文件,该文件启动后会执行以下操作。

1)假设启动脚本后我输入文本“abc”。那么脚本必须自动生成命令

cat text.txt
echo '123' > text.txt
echo 'abc' >>text.txt
echo '456' >>text.txt

2)完成之后,我需要执行一些命令(例如编译程序等)。

如何创建执行这些任务的 bash 脚本?

答案1

如果顶部和底部是固定的,它可能是这样的:

cat top.txt /dev/stdin bottom.txt > text.txt 
# with cat, - works the same as /dev/stdin

或者

{ 
  echo 123 #top.txt
  cat
  echo 456 #bottom.txt
} > text.txt 

接下来是你的编译命令

cat top.txt /dev/stdin bottom.txt > text.txt
gcc whatever 

第一行应该是一个 shebang 行,指定你的解释器,除非你同意/bin/sh

 #!/bin/bash
 cat top.txt /dev/stdin bottom.txt > text.txt
 gcc whatever

如果您随后用 , 标记脚本可执行文件chmod +x the_script./the_script则相当于/bin/bash ./the_script.

如果您希望脚本中止命令失败,请以set -e( 或创建 shebang 行 ( #!/bin/bash -e) 开头。

编辑:

cat需要整个文件(直到您输入 ctr-d - 文件结尾标记)。如果你只想要一行,你可以做 read -r some; printf '%s\n' "$something" 或head -n1.

man $command您可以使用或阅读命令的帮助页面help $command

相关内容