写2个shell 脚本,脚本A可以运行脚本B。脚本B先创建为B.txt,然后每隔1s输出hello shell B+循环次数到B.txt,如果脚本B的循环次数大于10次,则新建B1.txt,并将输入结果输出到B1.txt,再次循环10次后,将新建B2.txt,后面以此类推。脚本A在运行脚本B之后,不断检测脚本B创建新文件前的旧文件中是否含有‘100’,如果没有则删除旧文件。如果有则停止运行脚本B,并向当前含有100的文件中输入ok
时间: 2023-12-26 08:03:14 浏览: 39
脚本B:
```bash
#!/bin/bash
count=0
index=0
filename="B.txt"
while true; do
echo "hello shell B$count" >> $filename
sleep 1
((count++))
if ((count > 10)); then
((index++))
filename="B$index.txt"
count=0
fi
done
```
脚本A:
```bash
#!/bin/bash
./B.sh &
while true; do
sleep 1
files=$(ls B*.txt 2>/dev/null)
for file in $files; do
if grep -q '100' $file; then
echo "ok" >> $file
pkill -P $$ B.sh
exit
else
rm $file
fi
done
done
```
脚本A会先运行脚本B,然后每秒检查是否有以B开头的文件。如果文件中包含100,则向文件中添加ok并停止脚本B。否则,删除文件。
相关问题
写一个shell脚本demo 要求创建两个线程,线程1,间隔1s打印hello 与自己的tid,线程2间隔2s打印hi,与自己的tid
以下是一个简单的Shell脚本demo,它使用了Bash内置的`sleep`命令和`echo`命令来实现:
```
#!/bin/bash
function thread1 {
while true; do
echo "Hello from Thread 1 (TID: $$)"
sleep 1
done
}
function thread2 {
while true; do
echo "Hi from Thread 2 (TID: $$)"
sleep 2
done
}
thread1 &
thread2 &
wait
```
在这个脚本中,我们定义了两个函数`thread1`和`thread2`,它们分别打印不同的消息,并使用`sleep`命令来控制两个线程的时间间隔。然后我们在脚本的最后使用`&`符号来将两个函数作为后台进程执行,并使用`wait`命令来等待它们的结束。
注意,`$$`符号可以获取当前进程的PID,因此在这里我们使用它来获取线程的TID。
怎么创建shell脚本,如何使用shell脚本编写
要创建一个shell脚本,你需要遵循以下步骤:
1. 打开一个文本编辑器,例如Notepad++、Sublime Text或Vim。
2. 在文件的第一行添加`#! /bin/bash`或`#!/bin/sh`,这是告诉系统使用哪个Shell来执行脚本。
3. 在文件中添加你的Shell脚本代码,可以包含各种命令和逻辑。
4. 将文件保存为以`.sh`为扩展名的文件,例如`script.sh`。
5. 在终端中导航到该文件所在的目录,并使用以下命令将脚本设置为可执行:
```
chmod +x script.sh
```
6. 现在你可以执行脚本了,在终端中输入以下命令运行脚本:
```
./script.sh
```
关于如何编写Shell脚本,以下是一些常见的用法示例:
1. 输出文本:
```
#!/bin/bash
echo "Hello, World!"
```
2. 接收用户输入并输出:
```
#!/bin/bash
echo "What's your name?"
read name
echo "Hello, $name!"
```
3. 使用变量和条件语句:
```
#!/bin/bash
age=18
if [ $age -ge 18 ]
then
echo "You are an adult."
else
echo "You are not an adult."
fi
```
4. 循环迭代:
```
#!/bin/bash
for i in 1 2 3 4 5
do
echo "Number: $i"
done
```
这只是一些常见的Shell脚本用法示例,你可以根据需求编写更复杂的脚本逻辑。希望这些示例能帮助到你!
阅读全文