Questions tagged «scripting»

脚本是由解释程序执行而不是编译为独立可执行程序的命令或指令序列。

1
如何逐个文件移动目录?(而不是“先复制然后删除”)
我的电脑有一个500GB的驱动器。 我想将400GB的数据从/unencrypted移至/encrypted。 两个目录都在同一分区上,但是/encrypted由ecryptfs处理,因此mv /uncrypted/* /encrypted: 将所有文件复制到目标 然后从源中删除它们 ...我负担不起,因为它需要800GB。 如果文件一个接一个地移动,则不会有问题(ecryptfs区域是动态的)。 是否有一个mv选项或另一个工具可以逐目录移动目录? 文件数量很多,因此ARG_MAX对于基于脚本的解决方案可能是个问题。

8
bash脚本中的历史记录命令
历史是Shell内置命令,我无法在BASH脚本中使用它。那么,有没有一种方法可以使用BASH脚本来实现? 在这里,我们为您准备了我的脚本: #!/bin/bash history | tail -100 > /tmp/history.log cd /tmp uuencode history.log history.txt | mail -s "History log of server" hello@hel.com

3
将多个文件的内容馈送到脚本的stdin的简写
假设我有一个名为的脚本script,该脚本读取stdin一些结果并将其吐出到屏幕上。 如果要向其提供一个文件的内容,请输入: $ ./script < file1.txt 但是,如果我想将多个文件的内容以相同的方式提供给脚本,那有可能吗?到目前为止,我想到的最好的方法是: cat file1.txt file2.txt > combined.txt && ./script < combined.txt 它使用两个命令并创建一个临时文件。有没有办法做同样的事情,但绕开创建合并文件?

8
比ping检查计算机是否在线的方法更快?
我正在为一组实验室计算机编写局域网唤醒脚本。我们有一个带数据库主机名,IP和MAC列表的sqlite db,目前我用'-c1'对其进行ping操作,因此它不会无休止地运行-但即使这需要一些等待,还有一种更快的获取方法回答而不是ping?使用ping似乎会减慢脚本的速度,因为它需要ping答案才能继续。 非常感谢您的任何建议!

6
如何从执行的命令中捕获错误消息?
我的任务是创建一个自动的服务器强化脚本,他们需要做的一件事是报告所执行的每个命令的所有输出。我想将错误消息存储在字符串中,并将其附加到文本文件中。 假设我运行了以下命令: /sbin/modprobe -n -v hfsplus 在我的机器上运行此命令的输出为: FATAL: Module hfsplus not found 如何将错误消息存储在字符串中?任何帮助将不胜感激。谢谢!
20 bash  scripting  string 

2
如何终止Linux tee命令而不杀死它从其接收的应用程序
我有一个bash脚本,只要Linux机器通电就可以运行。我按如下所示启动它: ( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) & 启动后,我可以在ps输出中看到tee命令,如下所示: $ ps | grep tee 418 root 0:02 tee /tmp/nginx/debug_log.log 3557 root 0:00 grep tee 我有一个功能可以监视tee生成的日志的大小,并在日志达到一定大小时杀死tee命令: monitor_debug_log_size() { ## Monitor the file size of the debug log to make sure it does not get too big while true; do cecho …
19 linux  scripting  pipe  kill  tee 


4
如何在互连的命令之间实现循环数据流?
我知道两种类型的命令如何相互连接: 通过使用管道(将std-output放入下一个命令的std-input中)。 通过使用T恤(将输出拼接成许多输出)。 我不知道这是否可能,所以我画了一个假设的连接类型: 如何在命令之间实现循环数据流,例如在此伪代码中,我使用变量而不是命令。 pseudo-code: a = 1 # start condition repeat { b = tripple(a) c = sin(b) a = c + 1 }

4
当let或expr的值为0时,bash -e退出
我有一个设置-e的bash脚本,因此该脚本将在任何退出状态!= 0时退出。 我试图做一些分配给变量的基本Shell算术运算,有时表达式等于0,这会使let或expr命令的退出状态为“ 1”。 这是一个例子: #!/bin/bash -ex echo "Test 1" Z=`expr 1 - 1` || true echo "Z will print" let "A=4 - 4" echo "A WILL NEVER PRINT $A" Y=`expr 1 - 1` echo "Y WILL NEVER PRINT $Y" X=$(expr 2 - 2) echo "X WILL NEVER PRINT $X" …


6
如何在运行时仅从bash脚本中打印某些命令?
我有一个bash脚本,其中包含基于调用时传递的命令行参数的各种if语句。关于正在运行的命令有某种输出有助于确认所有if语句的流程,但是我当前的解决方案给了我太多信息。 set -v在脚本中使用有助于查看在脚本中运行时打印到屏幕上的命令,但是我得到的命令太多。它几乎就像是脚本的完整副本。 我希望输出显示正在运行的命令,但是我不想看到注释,换行符,if语句中的表达式等。 有没有一种方法可以在打印之前先使-v选项生成的所有可能的输出通过正则表达式?还是其他一些使bash仅输出特定“类型”命令的解决方案(例如,使用可执行文件而不仅仅是bash特定的语句,注释等)? [1] /programming/257616/sudo-changes-path-why在此方面非常有帮助,也是我得到使用建议的地方set -v。 编辑: 与我正在运行的脚本类似(但不完全相同)的脚本: #!/bin/bash #get verbose command output set -v env=$1 if [ "$env" == "dev" ]; then python ascript.py fi if [ "$env" == "prod" ]; then #launching in prod will most likely fail if not run as root. Warn user if …

1
使用/ usr / bin / time Shell命令提高%e精度
当我在shell中运行time命令时,time ./myapp我得到如下输出: real 0m0.668s user 0m0.112s sys 0m0.028s 但是,当我运行命令时,\time -f %e ./myapp我失去了精度,并且得到: 2.01s 如果我使用该%E命令,我也会以相同的方式失去精度。我如何更改它以再次获得更高的精度,但仍然只输出秒数? 我的研究基于以下Linux / Unix命令:时间和这个问题
19 shell  scripting  time 

4
我怎么知道是否启用了IP组播
我有运行IP多播测试的脚本。但是,我的脚本在特定的linux计算机上失败了。 我知道我可以CONFIG_IP_MULTICAST在内核配置文件中查看以确定内核是否以此编译。但是,如果我可以查看/proc或sysctl获得答案,则在脚本中标记缺少的需求会更容易。 有没有一种方法可以查找IP组播是否被编译到内核中而无需查看CONFIG_IP_MULTICAST?



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.