sh

sudo 清理用户输入,避免出现错误“bash: 无效选项”或“sh: 无效选项”
sh

sudo 清理用户输入,避免出现错误“bash: 无效选项”或“sh: 无效选项”

我正在使用sudobash 以特定用户身份执行任意命令。 这在一般情况下非常有效: sudo --login --user=maria -- "$COMMAND" 例如,这/bin/whoami完美地调用命令: sudo --login --user=maria -- "whoami" maria 但是,请假装您有一个名为的命令/bin/-something-。 相反,这不是工作: sudo --login --user=maria -- "-do-things-" -sh: 0: Illegal option -d 这是怎么回事?为什么我的参数被混淆...

Admin

为什么目录没有被扩展并且有些其他目录没有被创建?
sh

为什么目录没有被扩展并且有些其他目录没有被创建?

我正在使用 Docker,并尝试在使用 Alpine Linux 和 sh 作为 shell 的容器中运行以下脚本: 注意:SCANDISK_MOUNT和SCAN_MOUNT是环境变量,定义为var/scanserver和/var/scan #!/bin/sh if [[ -z "$SCANDISK_MOUNT" ]] && [[ -z "$SCAN_MOUNT" ]]; then return 0; fi for i in folder1 folder2 folder3 folder4; do if [ -d "$SCAND...

Admin

Grub 脚本如何删除菜单项
sh

Grub 脚本如何删除菜单项

我编写了一个 grub 脚本来检测可启动磁盘并将它们显示在 grub 菜单上。它正在运行,但我想添加一个重新扫描按钮,为此,我首先需要删除旧的菜单项。我该怎么办? 我的工作代码在这里: insmod part_gpt insmod fat insmod chain insmod part_msdos insmod ext2 submenu 'Bootable Disks' { menuentry 'Rescan Disks' --class recovery { scan_bootable_disks() } ...

Admin

sh 源权限被拒绝尝试调用另一个脚本
sh

sh 源权限被拒绝尝试调用另一个脚本

你能让一个sh脚本调用另一个脚本吗?(显然不行。) rwb@calleva:~/source$ ls -l total 8 -rwxr--r-- 1 rwb rwb 50 Oct 22 03:38 caller.sh -rwxr--r-- 1 rwb rwb 30 Oct 22 03:36 sourced.sh rwb@calleva:~/source$ cat sourced.sh #!/bin/sh echo "sourced.sh" rwb@calleva:~/source$ ./sourced.sh sourced.sh rwb@calleva:...

Admin

在内联 shell 脚本中使用 read -r
sh

在内联 shell 脚本中使用 read -r

我有一个文件,其中包含多个文件的绝对路径列表。我需要将文件中列出的所有文件移动到另一个目录。不幸的是,我必须使用内联 shell 脚本(即 sh -c)来执行此操作,并且我无法控制脚本引号之外的文本(我正在使用将命令作为内联 shell 脚本传递给操作系统的软件)。 当使用内联脚本时,以下命令中的 $file 计算结果为空字符串。 sh -c "while IFS= read -r file; do mv $file /target_dir; done < /source_dir/list_of_files.txt" 但如果我在终端中输入命令,一切都正...

Admin

如何创建异常数量的子目录?
sh

如何创建异常数量的子目录?

我想创建 1000x1000x1000x1000x1000 等目录,但是像mkdir -p {1..1000}/{1..1000}/{1..1000}/{1..1000}但是很多论点错误或者只是无限地消耗我的 RAM...我该如何正确地做? ...

Admin

Bash 脚本与命令行
sh

Bash 脚本与命令行

我已经开始研究 bash 脚本。我刚刚发现执行命令行和在脚本中执行相同命令之间存在差异。特别是命令行是: for a in {2..10..2};do echo "My number is:$a";done 其产生以下预期的输出: My number is:2 My number is:4 My number is:6 My number is:8 My number is:10 另一方面,脚本test.sh如下: #!/bin/sh ...

Admin

如何使用 xargs 将参数作为 $1、$2、$3 等传递给使用 sh -c 调用的内联脚本?
sh

如何使用 xargs 将参数作为 $1、$2、$3 等传递给使用 sh -c 调用的内联脚本?

我想将标记 abc 作为脚本的参数传递,该脚本将输出 a - b - c。如果我有一个脚本和一个包含dummy.sh以下内容的文件:echo "$1 - $2 - $3"dummy.dat a b c d e f 我想输出 a - b - c d - e - f 我可以做类似的事情: cat dummy.dat | xargs -Iline sh -c "sh dummy.sh line" cat dummy.dat | xargs -n3 sh dummy.sh 但是如果我不想要单行脚本,我只能使用吗,sh -c "echo $1 - $2 - $3...

Admin

我没有使用服务截取屏幕截图
sh

我没有使用服务截取屏幕截图

我正在使用 shell 脚本,我想在系统启动时自动运行该脚本开启/重启无需打开任何应用程序。 这是我的script.sh文件: while sleep 5 do scrot 'myimage.png' -e 'mv $f ~/Desktop/' done 测试.service文件: [Unit] Description=My Shell Script [Service] ExecStart=/home/chirag/tracker-ror/script.sh [Install] WantedBy=multi-user.target &...

Admin

如何使用 git pull 与 Jenkins sh 步骤?
sh

如何使用 git pull 与 Jenkins sh 步骤?

git pull由于某种原因,无法与 Jenkins 配合使用。我更新了本地 PC 上的一些文件并将其推送到 Github。我可以在那里看到更改。然后我运行 Jenkins build,其中包含从此存储库中提取的 sh 命令,它显示“已更新”。这是错误的,因为我显然将新版本推送到了 Github,如果我去那里并在浏览器中打开文件,我可以看到更改。这只发生在 Jenkins 运行 git pull 时,因为如果我连接到我的虚拟机并git pull自行运行,它会正常工作并更新我的文件。为什么会发生这种情况? 我的詹金斯文件: pipeline{ agent ...

Admin

MSYS2-更改为 /bin/sh
sh

MSYS2-更改为 /bin/sh

如何在 MSYS2 中将默认 shell 从 bash 切换到 sh?即使只是尝试做一些简单的事情,例如pacman -S sh尝试安装 bash。 ...

Admin

/bin/sh 符号链接到 bash,但是完全不同?
sh

/bin/sh 符号链接到 bash,但是完全不同?

如果我这样做ls -l /bin/sh:我得到 lrwxrwxrwx 1 root root 4 Jan 9 00:01 /bin/sh -> bash 但是,当我启动时sh,我得到了一个完全不同的提示,我的~/.bashrc没有来源,如果我手动来源它,我得到一堆语法错误。 怎么回事?我猜这是某种兼容模式吧? 编辑: 运行 Endeavour OS(基于 arch) echo $PATH给出: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_per...

Admin

通过电子邮件发送 FreeBSD 脚本输出丢失格式(在一行中左对齐和右对齐)
sh

通过电子邮件发送 FreeBSD 脚本输出丢失格式(在一行中左对齐和右对齐)

我每天都会在路由器上运行一个脚本来检查特定服务器的流量使用情况。该脚本运行良好,使用脚本的此输出部分,我得到以下结果: #Give output printf "Traffic Report for all Servers"; printf "%10s\n" echo -e "" printf "## Traffic Server 1 ##"; printf "%10s\n" echo "--------------------------------------" printf "Traffic User1 :"; printf "%15s\n" "120...

Admin