Questions tagged «scripts»

脚本是写在“纯文本”文件中的一系列指令。脚本解释器(例如Bash或其他Shell,Python,Perl,Ruby等)读取文件并执行指令,就像在命令提示符下输入了指令一样。

2
Tee无法从管道中获得全部输出
我有一个脚本,执行以下命令: export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH;./some_app -i $INDEX | tee $LOG echo "Number of errors: $(grep "ERROR" $LOG | wc -l)" 问题可能出在管道上tee。它似乎无法获得全部输出。当应用程序退出时,输出的最后几行(通常是包含致命错误的行)丢失。当我运行不带管道的应用程序时,tee将它们显示在输出中。 如何强制脚本等待tee完成所有输出的处理?

2
如何在KDE中设置桌面快捷方式以运行终端命令?
我正在尝试创建一个桌面快捷方式来启动Spyder,可以通过spyder在终端中键入来启动它。 我在其中spy.sh编写了一个脚本spyder。与bash spy.sh和一起使用./spy.sh。但是当我这样创建桌面快捷方式时: [Desktop Entry] Name=spyd Exec=/Desktop/spy.sh Comment= Icon= Type=Application Terminal=true 它给出了一个错误: “为终端创建子进程时出错。无法执行子进程“ /Desktop/spy.sh”(没有此类文件或目录)” 当我变成同样的错误 Exec=spyder 我该怎么办?

4
如何将命令输出分隔到单独的行
list=`ls -a R*` echo $list 在shell脚本中,此echo命令将以R开头但在一行中列出当前目录中的所有文件。如何在一行上打印每个项目? 我需要一个通用的命令所有的场景有发生ls,du,find -type -d,等。
12 bash  scripts 

2
删除文件时排除某些文件和目录
我的顶级目录是data。data包括几个目录,这些目录具有子目录。我需要删除data/除某些目录中的几个文件之外的所有文件和目录。 例如,数据包括目录100和101。我只是想保持a.txt与b.txt在文件100/和c.txt和d.txt文件101/同时去除所有其他文件和目录100和101。 例: . ├── 100 │ ├── a.txt │ ├── b.txt │ ├── c.txt │ └── d.txt └── 101 ├── a.txt ├── b.txt ├── c.txt └── d.txt 我使用rm -rf !(a.txt|b.txt)命令,但无法自动将此命令应用于每个目录。

7
从脚本获取/文件系统的UUID
如何获取包含/文件系统的卷的UUID ?迄今为止,我发现最好的是blkid -o list。但是此输出是人类可读的并且难以解析。也许有更好的方法? 我需要使用系统特定模板来参数化配置管理。 有关blkid将来可能会重复使用我的问题结果的人的注意事项:blkid将先前运行的结果缓存在/etc/blkid.tab。这意味着blkid首次以非root用户身份运行不会返回任何数据。同样,blkid以root用户身份运行后以非root用户身份运行将返回陈旧(可能不正确)的数据。

4
条件失败时如何停止bash脚本?
在这里显示了使用||和&&在一行中连接命令的执行:如何在bash脚本中检查apt-get错误? 如果某个条件失败,我试图停止执行脚本, 例如 false || echo "Obvious error because its false on left" && exit 它在这里打印Obvious error because its false on the left并退出我想要的控制台。 true || echo "This shouldn't print" && exit 在这里,没有回显打印,但是exit命令也运行了,即,控制台已关闭,exit由于未执行右侧的echo命令,该命令不应该不运行吗?还是默认情况下,&&运算符左侧的语句被认为是错误的? 编辑:我之前应该提到它,我的目的是回显错误,如果不清楚,则退出。对于我使用&&和||分组条件时捕获错误的特定情况,@ bodhi.zazen答案解决了该问题。 @takatakatek的答案使您对流量控制更加清楚,bash指南链接也非常出色 @muru答案很好地解释了为什么不使用set -e如果您希望通过使用perl和trap的替代方法抛出自定义错误消息,我认为这是更可靠的方法,并且从第二个bash脚本开始就可以使用它!

5
如何使用Shell脚本将文本文件中的值打印到列文件中
我从运行shell脚本得到的output.txt如下: abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2.txt Sat Nov 12 03:00:09 2016 文本文件以相同的方式逐行具有多个条目。我想将这些值打印到列中:Filename,Status和Timestamp,如下所示: Filename Status Timestamp abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2 Sat Nov 12 03:00:09 2016


3
rm在命令行上工作,但不在脚本中工作
当我rm *.old.*在命令行上执行时,它会正确删除,但是当我在脚本的以下部分中执行此操作时,它不会保留所有*.old.*文件。 我的bash脚本出了什么问题: for i in ./*; do if [[ -f $i ]]; then if [[ $i == *.old.* ]]; then oldfile=$i echo "this file is to be removed: $oldfile" rm $oldfile exec 2>errorfile if [ -s $errorfile ] then echo "rm failed" else echo "removed $oldfile!" fi else echo …
11 bash  scripts  rm 

2
ls [13]和ls {1,3}有什么区别?
我使用命令在目录中创建了三个文件touch inv{1..3}.txt。现在,我使用了两个命令,它们的输出几乎相同。这两个命令是ls inv[13].txt和ls {1,3}.txt。 那么这两个有何不同?方括号与括号相比有何不同?我也一直在搜索“ linux [..]”,但是找不到任何东西,所以我能知道在Linux术语中这些东西是什么吗? 谢谢

3
意外令牌'('附近的语法错误
当我在Ubuntu终端中使用以下代码时,它可以正常工作: rm !(*.sh) -rf 但是,如果我将相同的行代码放在外壳程序脚本(clean.sh)中并从终端运行外壳程序脚本,则会引发错误: clean.sh脚本: #!/bin/bash rm !(*.sh) -rf 我得到的错误: ./clean.sh: line 2: syntax error near unexpected token `(' ./clean.sh: line 2: `rm !(*.sh) -rf' 你能帮我吗?

2
如何突出显示当前屏幕(或窗口)?
我在工作时使用两个屏幕设置,尽管它通常带来的好处多于伤害,但我有一些问题。 其中之一是跟踪焦点出现问题-有时我在错误的屏幕上键入错误(焦点在我的光标后面,但是当您匆忙执行操作时,总是不容易注意到光标在其他屏幕上)。当我不打字而导致大量不同的动作(雷鸟中的一键快捷方式)时,这非常烦人。 有没有一种方法可以更好地突出显示活动屏幕或窗口(例如,使用容易看到的边框-即使是最大化的窗口)? 编辑: 我认为,当窗口获得焦点时,一种不错的解决方案是一种简短的动画。

3
Shell脚本问题:cron作业脚本在意外停止时重新启动MySQL服务器
我有这个脚本,我正在使用它来设置CRON作业以执行该脚本,因此它可以检查MySQL服务是否正在运行;如果没有,则重新启动MySQL服务: #!/bin/bash service mysql status| grep 'mysql start/running' > /dev/null 2>&1 if [ $? != 0 ] then sudo service mysql restart fi 我已经设置了cron工作。 sudo crontab -e 然后添加 */1 * * * * /home/ubuntu/mysql-check.sh 问题是它在每次执行cron作业时都会重新启动MySQL。即使服务器正在运行,它也会重新启动MySQL服务,脚本中的更正是这样做。
11 bash  mysql  cron  scripts 

1
如何基于CSV文件批量重命名文件(图像)
我所要实现的目标: 一个文件夹中有数千张图像。 我有一个包含以下列的CSV文件: A:原名B:重命名 典型的行如下所示: "original-1.jpg","renamed-1.jpg" "original-2.jpg","renamed-2.jpg" 我可以删除引号,这不是问题。 现在,我想使用一个应用程序或运行一个脚本,该脚本将搜索A列中的所有图像并将它们重命名为B列中的名称(例如,original-1.jpg->重命名为1.jpg)。 周围有一些答案,例如: http://ubuntuforums.org/showthread.php?t=1069652 http://systembash.com/content/one-line-batch-rename-files-using-csv-input-file-and-awk/ 但是,其中涉及一些脚本,因此我不确定所有这些脚本是否仅影响存储脚本的文件夹,或者它们是否可以重命名磁盘上满足某些条件的所有文件。当然,需要避免后者。 我正在寻找的是一个简单的指南,说明如何重命名文件以及如何选择包含文件的文件夹。 先感谢您。

3
SSH连接后在服务器中自动运行脚本
客户端系统与服务器建立ssh连接后,如何在服务器中自动运行脚本 例如:假设用户将使用ssh连接从另一个系统(通过lan连接)登录到我的计算机。那时,应该在我的系统中自动运行一个脚本(python或shell)以执行一些验证? 如何在服务器系统中自动运行脚本?

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.