小编Deb*_*ger的帖子

Linux/Unix Bash脚本如何知道自己的PID?

我在Bash中调用了一个脚本Script.sh,它需要知道自己的PID(即我需要在Script.sh中获取PID)

知道怎么做吗?

bash scripting pid

127
推荐指数
5
解决办法
12万
查看次数

如何使用bash删除和替换终端中的最后一行?

我想实现一个进度条,显示bash中经过的秒数.为此,我需要擦除屏幕上显示的最后一行(命令"clear"擦除所有屏幕,但我只需要擦除进度条的行并将其替换为新信息).

最终结果应如下所示:

$ Elapsed time 5 seconds
Run Code Online (Sandbox Code Playgroud)

然后在10秒后我想通过以下方式替换这句话(在屏幕中的相同位置):

$ Elapsed time 15 seconds
Run Code Online (Sandbox Code Playgroud)

bash terminal replace line

90
推荐指数
8
解决办法
7万
查看次数

Bash中"$ @"和"$*"有什么区别?

在我看来,它们都存储了所有命令行参数.

两者之间有区别吗?

variables bash command-line-arguments

65
推荐指数
2
解决办法
3万
查看次数

Bash中运算符"="和"=="之间有什么区别?

似乎这两个运营商几乎相同 - 有区别吗?我何时应该使用=何时==

bash operators

61
推荐指数
2
解决办法
1万
查看次数

如何让bash脚本要求输入密码?

我想用密码确保程序的执行.

我怎么用bash做到这一点?

passwords bash

44
推荐指数
3
解决办法
2万
查看次数

如何在Bash中使用tail获取文件的最后一个非空行?

如何tail在Bash shell下使用最后一个非空行?

例如,my_file.txt看起来像这样:

你好
hola
bonjour
(空行)
(空行)

显然,如果我这样做,tail -n 1 my_file.txt我会得到一个空行.就我而言,我想得到bonjour.我怎么做?

bash tail line

34
推荐指数
4
解决办法
4万
查看次数

如何在HTML5元素中设置透明背景

我想将元素的不透明度设置为0.现在,如果我这样做,元素的所有内容将继承此属性.我不想要这个,我只想让背景获得不透明度0而内容(例如文本)保持可见

有线索吗?

谢谢.

css opacity css3

22
推荐指数
2
解决办法
3万
查看次数

如何通过脚本集合传播信号?

我有一个由主要脚本控制的脚本集合.我想在主脚本中捕获信号ctrl+ c并将其传播给其他人.其他脚本也应该捕获此信号(从主脚本)并进行一些清理......

我试图发送kill -s SIGINT给孩子们,但他们似乎无法捕捉到信号(即使trap 'Cleanup' SIGINT是在儿童脚本上定义的)

任何线索如何实现这一点?

bash signals copy-paste kill bash-trap

21
推荐指数
2
解决办法
8748
查看次数

如何禁止在C++中使用默认构造函数?

我不希望在我的程序中创建一个对象而不将参数传递给构造函数.

有办法吗?

c++ constructor object

21
推荐指数
3
解决办法
2万
查看次数

如何从多个脚本中以bash同步(锁定/解锁)对文件的访问?

我正在编写将并行运行的脚本,并将从同一个文件中获取输入数据.这些脚本将打开输入文件,读取第一行,存储它以供进一步处理,最后从输入文件中擦除此读取行.

现在问题是访问文件的多个脚本可能导致两个脚本同时访问输入文件并读取同一行的情况,这会产生两次处理行的不可接受的结果.

现在一个解决方案是.lock_input在访问输入文件之前编写一个锁文件(),然后在释放输入文件时将其擦除,但是这种解决方案在我的情况下并不吸引人,因为有时NFS会随机减慢网络通信速度并且可能没有可靠的锁定.

另一种解决方案是放置进程锁而不是编写文件,这意味着访问输入文件的第一个脚本将启动一个名为lock_input的进程,其他脚本将启动ps -elf | grep lock_input.如果它出现在进程列表中,它们将等待.这可能比写入NFS更快,但仍然不是完美的解决方案......

所以我的问题是:是否有任何bash命令(或其他脚本解释器)或我可以使用的服务,其行为类似于线程编程中用于同步的信号量或互斥锁?

谢谢.

小粗略的例子:

假设我们有input_file如下:

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday 
Sunday

治疗脚本:TrScript.sh

#!/bin/bash  
NbLines=$(cat input_file | wc -l)  
while [ ! $NbLines = 0 ]  
do  
  FirstLine=$(head -1 input_file)  
  echo "Hello World today is $FirstLine"  
  RemainingLines=$(expr $NbLines - 1 )  
  tail -n $RemainingLines input_file > tmp  
  mv tmp input_file  
  NbLines=$(cat input_file | wc -l)   
done
Run Code Online (Sandbox Code Playgroud)

主要脚本:

#! /bin/bash  
./TrScript.sh &  
./TrScript.sh &  
./TrScript.sh &  
wait
Run Code Online (Sandbox Code Playgroud)

结果应该是:

Hello …

bash synchronization locking

19
推荐指数
2
解决办法
2万
查看次数