Questions tagged «scripts»

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



2
$'$ foo'和$“ $ foo”之间的区别
我很难弄清楚可变上下文中单引号和双引号之间的细微差别 我定义: foo=pwd 然后运行这些: echo $'$foo' 哪个回声$foo(意味着$我的回声命令中的第一个被删除) echo $"$foo" 这回声pwd(这意味着bash将$foo我的变量扩展到其值) echo $`$foo` 最后,这回显$~/scripts(我希望它能打印~/scripts而不是$~/scripts) 有人可以帮助我找出这些差异吗?


4
打开多个终端选项卡并运行命令
我需要打开多个终端选项卡,给它们标题,进入目录,并使每个选项卡运行一个命令。 我是Linux和Shell脚本的新手,在在线搜索并检查了一些解决方案后,我制作了此脚本(根据以下答案进行编辑): #!/bin/bash cd /media/Extra/Project tab=" --tab-with-profile=Default" options=(--tab --title=Terminal) cmds[1]="'rails s'" titles[1]="Server" cmds[2]="'rails c'" titles[2]="Console" for i in 1 2; do options+=($tab --title="${titles[i]}" -e "bash -c \"${cmds[i]} ; bash\"" ) done gnome-terminal "${options[@]}" exit 0 它打开选项卡,为其命名,但无法执行生成此错误的命令: 为该终端创建子进程时出错 另一个缺点是,如果我停止了正在运行的命令,它将关闭选项卡,而这是我不希望的。我需要能够停止命令并在同一选项卡中再次运行它。 脚本有什么问题?还有另一种更简单的方法吗? 注意:如果从命令中删除了(-e“ \” bash -c $ {cmds [i]}; bash \“”)部分,它将打开给定目录中的选项卡并命名它们,没有错误。 -编辑1: 应用@Tuknutx回答下面和编辑脚本后,错误不会出现了,但它给了我bash: …

5
如何将日志添加到带有时间戳的crontab中
在crontab中,我安排了每日备份脚本。现在,当cron执行脚本时,状态将记录到日志文件中,如下所示。 0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1 现在,当cron执行脚本时,每次都会更新日志的内容。因此,我希望将内容与执行时间的时间戳一起添加到同一文件中,并将每次添加的内容与现有内容一起添加到同一文件下。我怎样才能做到这一点。
9 bash  scripts  cron  logs 

1
bash脚本源:没有这样的文件或目录
我有一个像这样开始的脚本 #!/bin/bash VALKYRIE=~/myProjects/valkyrie source $VALKYRIE/cluster.conf 但是当我运行它返回 line 2: ~/myProjects/valkyrie/cluster.conf: No such file or directory 但是该文件存在,并且在我运行source ~/myProjects/valkyrie/cluster.conf时可以正常运行。任何的想法?我在VALKYRIE其他地方设置了变量,因此无法在路径中添加硬编码。
9 bash  scripts  source 

2
如何使用脚本自动将文件发送到FTP服务器?
我需要制作一个脚本,将特定的日志文件/var/log/放入其中,并将其放在我可以轻松获取的位置(很可能是我可以访问的Web或FTP服务器)。我认为我不想使用邮件发送。Webdav可能是一个选择。它只需要工作而无需任何用户交互,并且非常快捷,轻松。有什么建议么?(基本上不需要密码)

3
如何一次安装多个PPA和应用程序?
我将在实验室的一个工作台上安装几台通用计算机。 在初始安装Ubuntu之后,我想安装一大堆PPA存储库和来自Ubuntu存储库的应用程序。 是否可以编写一个脚本来一次性安装所有这些应用程序和PPA,只需要我双击可执行脚本并输入管理员密码即可? 我想那将是相当简单的。有人可以为我提供快速教程,或者甚至提供某种模板脚本,以便我可以添加PPA名称和apt-get安装软件包吗? 谢谢。

1
启动在一个控制台中拆分的Shell中运行的多个应用程序
我需要启动在shell中运行的多个应用并监视其执行。目前,我有一个主脚本,可以在新的gnome控制台中启动每个应用程序,但我希望将它们全部在同一屏幕上的拆分屏幕中启动。 这篇文章在一个窗口中有多个shell解释了如何将分割屏幕与多种类型的控制台应用程序一起使用,例如screen,terminator和byobu。手动可以正常运行,但是我希望能够从我的主脚本自动在拆分屏幕控制台中启动我的所有应用程序。在上述工具的文档中,没有什么我可以通过脚本自动实现的。 有任何想法吗?


1
在启动另一个systemd服务之前,如何在启动时启动systemd服务?
我在旧的惠普笔记本电脑上运行Ubuntu 16.04 我已经在上面安装了一些软件来创建小型自制plex服务器。我已经安装了声纳,雷达,洪水,夹克等,它们都将在启动时自动启动! 几天前,我决定也安装rclone,并且由于启动了GitHub项目,我创建了几个文件夹,每次启动时都要通过启动脚本来挂载这些文件夹(我通过终端编写来启动sudo ~/bin/check.mount)。Sonarr和Radarr设置为通过洪水将内容下载到临时文件夹,然后将其导出到这两个已安装文件夹之一。 问题是,当我手动启动脚本Sonarr / Radarr时,它们已经启动并正在运行,并且找不到其根文件夹,因此它们给我一个错误。 我想做的是创建一个mountgdrive.service(服务,或任何必要的东西)以自动启动check.mount脚本,如果还不够,请在sonarr.service和radar.service中插入一个延迟!那可能吗? 我写了这个 sudo nano /etc/systemd/system/mountgdrive.service [Unit] Description=MountSmokeScreen After=network.target [Service] Type=oneshot ExecStart=/home/samsepioldoloresh4ze/bin/check.mount TimeoutStopSec=20 KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target 并添加到sonarr.service和radarr.service mountgdrive.service在After=位,这样 [Unit] Description=Sonarr After=syslog.target network.target mountgdrive.service [Service] User=samsepioldoresh4ze etcetc .... 但这不起作用!Sonarr和Radarr正常启动,但未安装驱动器!我究竟做错了什么? 另外,rtcwake无法在我的笔记本电脑上运行-我认为这是内核问题?有办法解决吗?


3
如何通过脚本中的变量将'*'通配符传递给find命令的路径参数?
我想用来find在一组受通配符限制的文件夹中查找文件,但是路径名中有空格。 从命令行,这很容易。以下示例均有效。 find te*/my\ files/more -print find te*/'my files'/more -print find te*/my' 'files/more -print 这些将在terminal/my files/more和中找到文件tepid/my files/more。 但是,我需要将其作为脚本的一部分。我需要的是这样的: SEARCH='te*/my\ files/more' find ${SEARCH} -print 不幸的是,无论我做什么,我似乎都无法find在脚本中的命令中混合使用通配符和空格。上面的示例返回以下错误(请注意反斜杠的意外加倍): find: ‘te*/my\\’: No such file or directory find: ‘files/more’: No such file or directory 尝试使用引号也会失败。 SEARCH="te*/'my files'/more" find ${SEARCH} -print 这将返回以下错误,而忽略了引号的含义: find: ‘te*/'my’: No such file …

1
每小时GIT推送
我是否可以通过批处理脚本每小时自动执行一次Git推送。 我通常会输入以下内容: git add * git commit -m "latest update" git push https://username:password@github.com/username/repository.git master 我该如何自动化?

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.