标签: scripts

编写 bash 脚本以使用目录中的 Inkscape 从 SVG 创建 PNG

我对 bash 脚本非常陌生,我希望有人可以帮助我完成这项任务。

我有一个充满 *.SVG 文件的目录,我想使用以下命令将它们与 inkscape 批量转换为 PNG:

inkscape -f FILENAME.svg -w WIDTH -h HEIGHT -e FILENAME.png
Run Code Online (Sandbox Code Playgroud)

该脚本还有一个参数 $width 和 $height。如果只给出一个参数,脚本应创建一个方形图像,其中 $width=$height

例子

目录内容:

file1.svg
file2.svg
file3.svg

./batchscript.sh 1024 2000
Run Code Online (Sandbox Code Playgroud)

应该执行

inkscape -f file1.svg -w 1024 -h 2000 -e file1.png
inkscape -f file2.svg -w 1024 -h 2000 -e file2.png
inkscape -f file3.svg -w 1024 -h 2000 -e file3.png
Run Code Online (Sandbox Code Playgroud)
./batchscript.sh 3000
Run Code Online (Sandbox Code Playgroud)

应该执行

inkscape -f file1.svg -w 3000 -h 3000 -e file1.png
inkscape -f file2.svg -w 3000 -h 3000 -e file2.png …
Run Code Online (Sandbox Code Playgroud)

scripts svg inkscape png

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

打开终端后桌面启动器执行一系列命令

我创建了一个 .desktop 启动器,如下所示,它成功打开了终端。接下来我想要做的是打开它后通过终端运行以下命令,例如cd home/userA/scriptsthen PACKAGE_PATH=/home/userA/package1then通过这个 .desktop 启动器。source setdefaults.sh

我的运行桌面:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_AU]=/usr/pics/pic1.png
Name[en_AU]=RUN
Exec=gksu -u userA /usr/bin/gnome-terminal
Comment[en_AU]=comment
Name=RUN
Comment=comment
Icon=/usr/pics/pic1.png
Run Code Online (Sandbox Code Playgroud)

所以我想做的是在执行打开终端的第一个命令后自动运行一系列命令和脚本(通过终端)。如果有人可以请建议。

command-line bash scripts unity launcher

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

如何在不影响文件系统的情况下运行 bash 脚本?

我正在尝试为 Linux 系统(ubuntu)创建一些沙箱软件。我的主要目标是找出哪些文件是由我选择的 bash 脚本执行的,而不是实际让它运行它们。我还想防止对系统进行更改,因此运行脚本会认为他有能力写入文件但实际上没有。我不想在低权限下运行 bash 脚本,因为如果它尝试更改某些内容,它将无法运行。请不要建议通过虚拟机运行它,这对我来说太慢了。

我唯一想到的是挂钩任何写入系统调用,因此当它尝试写入文件时,系统将返回成功但不执行任何操作。还挂钩任何执行系统调用以捕获脚本执行的所有程序,并防止执行其他文件,同时将成功返回给脚本。但我必须知道如何做到这一点。

有任何想法吗?提前致谢。

bash scripts

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

网络管理器 - 连接失败时运行脚本

当网络连接断开(并且无法重新连接)时,是否可以告诉网络管理器运行脚本?

例如:我的网卡驱动程序中有一个错误,有时 NM 无法连接,脚本可以修复它`,并且我希望每次网络管理器无法连接时都运行它,我该怎么做?

scripts network-manager networking

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

用于记录磁盘使用情况的脚本或程序

我想要一个程序或更佳的方式来记录磁盘使用情况。

为了解释我的意思,当有人安装 Ubuntu 时,大约使用了 4.5 GB 的磁盘。然后,当您安装/卸载程序时,此使用量会增加或减少。

我想要的是一种在发生更改(安装/保存或卸载/删除某些内容)时自动记录 txt 文件中使用的当前磁盘以及发生此更改的时间和日期的方法。

scripts disk-usage

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

如何检查文件夹是否为空并在 if-then-else-statement 中使用其内容?

我需要检查文件夹是否为空,并根据输出我需要运行一些其他命令。我正在使用 Ubuntu 18.04.5 LTS。

我的 bash 脚本:

if [ "$(ls -A /mnt/mamdrive/"As Metadata"/)" ] || ["$(ls -A /mnt/mamdrive/"As Video"/)"  ]; then
    echo "copy file"
else
    echo "dont copy"
fi
Run Code Online (Sandbox Code Playgroud)

这种情况有时有效,但有时不起作用,而且很难重现。有没有其他方法可以检查目录是否为空并相应地执行一些操作?

command-line bash scripts

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

Xubuntu“Bash”不存在?

我的 xubuntu 脚本有问题。这是脚本:

#!/bin/bash/
cd /
touch ~/.config/zoomus.conf
cd ~/Desktop
'home/oem/Desktop/Zoom.desktop'
Run Code Online (Sandbox Code Playgroud)

这是我的错误:

bash: ./zoom.sh: /bin/bash/^M: bad interpreter: Not a directory
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。我编写脚本 bc zoom 不会在没有终端的情况下在此处运行。所以我在写剧本。


这是另一个错误:

/home/oem/Desktop/Zoom.desktop: line 1: [Desktop: command not found
/home/oem/Desktop/Zoom.desktop: line 3: Video: command not found
/home/oem/Desktop/Zoom.desktop: line 4: fg: no job control
/home/oem/Desktop/Zoom.desktop: line 9: Application: command not found
/home/oem/Desktop/Zoom.desktop: line 11: x-scheme-handler/zoomus: No such file or directory
/home/oem/Desktop/Zoom.desktop: line 11: x-scheme-handler/tel: No such file or directory
/home/oem/Desktop/Zoom.desktop: line 11: x-scheme-handler/callto: No such file or directory …
Run Code Online (Sandbox Code Playgroud)

xubuntu bash scripts

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

为什么这个 .sh 脚本在 CentOS 上运行而不是在 Ubuntu 上运行?

我正在尝试运行这个简单的脚本,该脚本在 CentOS 上成功运行,但在 Ubuntu 上运行失败。脚本成功启动但未能进入 if 条件并直接移动到 else。

if 循环是否有任何语法错误?这个想法是将文件名 output2.txt 的内容放入一个名为value的变量中(该命令可以吗?)并检查文本中是否包含512.00GB 子文本(在value 中)...

sudo msecli -L > output2.txt
value=`cat output2.txt`
check="512.00GB"
#echo "$value"
if [[ "$value" == *"$check"* ]]; then
  echo "The SSD is 512GB"
sudo msecli -L >> output.txt
sudo nvme delete-ns -n 1 /dev/nvme0
sudo nvme delete-ns -n 1 /dev/nvme1
sleep 1
sudo msecli -N -q 100 -n /dev/nvme0 -r
sleep 1
sudo msecli -N -q 100 -n /dev/nvme1 …
Run Code Online (Sandbox Code Playgroud)

scripts

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

如何从头开始创建自己的 Linux 包?

你如何创建自己的包在Linux中,就像cdls或任何第三方软件包?

我所知道的是如何创建一个.sh文件,在其中编写一个脚本并使用以下命令执行它:

bash file_name
Run Code Online (Sandbox Code Playgroud)

但除此之外,我想更深入地了解。请解释从下载使用apt-get到如何运行它的完整步骤。

package-management packaging command-line scripts gnome-shell

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

创建一个简单的脚本,重命名从一组文件中随机选取的文件

这个想法是在 KDE 启动期间播放“问候”声音文件。

例如,在一个文件夹中,将有 10 个音频文件。比方说,命名1.ogg 2.ogg 3.ogg等。

实际播放的文件称为greetings.ogg.

如何随机获取这些文件之一并将其重命名为greetings.ogg不丢失 10 个原始文件?

我尽力了,但我失败了。

bash scripts

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