AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-206574

Ahmad Ismail's questions

Martin Hope
Ahmad Ismail
Asked: 2025-04-23 07:34:46 +0800 CST

使用 zmv 递归重命名目录

  • 7

我正在尝试将所有文​​件夹_Oreilly(完全匹配)递归重命名为_OreillyFox

换句话说,我试图达到与以下相同的效果:

find . -depth -type d -name "_Oreilly" -execdir rename "s/_Oreilly/_OreillyFox/" {} \;

使用zmv。

我正在尝试的命令是:

zmv -n '(**/)_Oreilly' '${1}_OreillyFox'

我尝试了上述命令,并传入了文件名,但它成功重命名了它们。我只想重命名目录。

zsh
  • 2 个回答
  • 147 Views
Martin Hope
Ahmad Ismail
Asked: 2025-04-09 18:25:23 +0800 CST

光标停在单引号和双引号处

  • 5

我有一个像这样的zle:

function _ctrl-shift-left() {
    ((REGION_ACTIVE)) || zle set-mark-command # Selection
    zle backward-word
}

zle -N _ctrl-shift-left
bindkey '^[[1;6D' _ctrl-shift-left # Ctrl+Shift+Left to select till the beginning of the previous word.

例如下面的命令

$ curl -s "https://samplesite.com/101146/07/data-processing/13/?#/101146-132519042909.html" | grep -oP 'https://dl\d*\.samplesite\.com/Files/[^"]+\.rar' | sed 's/\?nocache=[^&]*//g'

当我按下时ctrl-shift-left,我想将光标停在'和处"。

我怎样才能做到这一点?

zsh
  • 2 个回答
  • 27 Views
Martin Hope
Ahmad Ismail
Asked: 2024-09-25 19:47:08 +0800 CST

打印光标前后的字符

  • 6

我需要一个 zle 函数来打印光标前后的字符。

print-char-before-after() {
    # Get the position of the cursor
    local cursor_pos=$CURSOR

    # Get the text in the current line
    local line_text=${BUFFER}
}

# Bind the function to a key combination (for example, Ctrl+P)
zle -N print-char-before-after
bindkey '^P' print-char-before-after

假设管道是光标,如果输入是:

This is a inp|ut

输出将是pu

它需要在行首和行末以及多行缓冲区上进行工作。

如果输入是:

|This is a input

输出将是T

如果输入是:

This is a input|

输出将是t

我怎样才能做到这一点?

更新 1:

解决我的问题的代码是:

print-char-before-after() {
    # Get the characters from the left and right buffers
    local before_char=""
    local after_char=""

    # Check if the cursor is not at the beginning of the line
    if [[ -n "$LBUFFER" ]]; then
        before_char=${LBUFFER[-1]} # Last character of LBUFFER
    fi

    # Check if the cursor is not at the end of the line
    if [[ -n "$RBUFFER" ]]; then
        after_char=${RBUFFER[1]} # First character of RBUFFER
    fi

    # Print the characters before and after
    echo "${before_char}${after_char}"
}

# Bind the function to a key combination (for example, Ctrl+P)
zle -N print-char-before-after
bindkey '^P' print-char-before-after
zsh
  • 1 个回答
  • 43 Views
Martin Hope
Ahmad Ismail
Asked: 2024-04-30 08:10:06 +0800 CST

递归搜索包含所有搜索字符串的txt文件

  • 3

我想找到所有包含“谁”、“什么”、“为什么”、“如何”、“何时”的文件。所有单词,顺序不限。不区分大小写

我试过:

grep -rl --include='*.adoc' "Who" . | xargs grep -l "What" | xargs grep -l "Why" | xargs grep -l "How" | xargs grep -l "When"

它给出的错误如下:

grep: Walkthrough/datatable/extras/Scroller/media/data/2500.adoc: No such file or directory
command-line
  • 2 个回答
  • 71 Views
Martin Hope
Ahmad Ismail
Asked: 2023-09-12 00:00:44 +0800 CST

在文件的每一行上运行 wget 命令并下载文件(一次两个)[重复]

  • 5
这个问题在这里已经有了答案:
并行执行四个任务...我该怎么做? (4 个回答)
2 天前关闭。

我有一个文件,其中包含要下载的文件的网址。

例如:

https://url-of/file1.zip
https://url-of/file2.zip
https://url-of/file3.zip
...

我当前用于下载文件的命令是:

wget --continue --tries=0 https://url-of/file.zip

但现在我需要一个 bash 脚本,它将从文件中读取 URL 并下载,一次两个。

到目前为止我想出的脚本是:

#!/bin/sh

cat file.txt |while read url
do
    wget --continue --tries=0 "$url"
done

但它下载单个文件。

我如何编辑它以便它一次下载两个文件。

bash
  • 1 个回答
  • 48 Views
Martin Hope
Ahmad Ismail
Asked: 2023-07-16 15:05:32 +0800 CST

重命名名为 _QWE 的目录的子子目录

  • 6

我可以在所有名为的目录中运行命令_QWE:

find . -name '_QWE' -type d -execdir touch {}/1234.txt \;

但是,我需要-execdir rename 's!^\./(\d+ -)\s(\d+\.)!$1!' {} \;在 的所有直接子目录中运行_QWE来重命名_QWE.

我的意思是假设我有一个像这样的目录结构:

├── folder_1
│   └── _QWE
│       ├── Course 1
│       │   ├── 1 - Introduction
│       │   ├── 2 - 1. Basics of Course 1
│       │   ├── 3 - 2. Conclusion of Course 1
│       ├── Course 2
│       │   ├── 1 - Introduction
│       │   ├── 2 - 1. Basics of Course 2
│       │   ├── 3 - 2. Conclusion of Course 2
├── folder_2
│   └── folder_3
│      └── _QWE
│          ├── Course X1
│          │   ├── 1 - Introduction
│          │   ├── 2 - 1. Basics of Course X1
│          │   ├── 3 - 2. Conclusion of Course X1
│          ├── Course X2
│          │   ├── 1 - Introduction
│          │   ├── 2 - 1. Basics of Course X2
│          │   ├── 3 - 2. Conclusion of Course X2

这里我想重命名:

1 - Introduction
2 - 1. Basics of Course 1
3 - 2. Conclusion of Course 1
1 - Introduction
2 - 1. Basics of Course 2
3 - 2. Conclusion of Course 2
1 - Introduction
2 - 1. Basics of Course X1
3 - 2. Conclusion of Course X1
1 - Introduction
2 - 1. Basics of Course X2
3 - 2. Conclusion of Course X2

例如,此处3 - 2. Conclusion of Course X2将重命名为3 - Conclusion of Course X2. 这就是's!^\./(\d+ -)\s(\d+\.)!$1!'作用。

需要明确的是,3 - 2. Conclusion of Course X2是目录名而不是文件名。

我怎样才能做到这一点?

更新1:

我可以使用以下方法获取路径:

for dir in $(find . -name '_QWE' -type d)/*/ ; do echo $dir ; done

或者,

for dir in $(find . -name '_QWE' -type d)/*/ ; do (cd "$dir"; pwd); done

但,

for dir in $(find . -name '_QWE' -type d)/*/*/ ; do rename 's!^\./(\d+ -)\s(\d+\.)!$1!' $dir ; done

不产生任何输出。

bash
  • 1 个回答
  • 43 Views
Martin Hope
Ahmad Ismail
Asked: 2023-07-09 10:01:30 +0800 CST

提取方括号内并以逗号分隔的数据

  • 7

我有这样的数据:

['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom9/']

我希望每个值每行一个不带引号的值(以便我可以将其传送到另一个命令),例如:

/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/
/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/
....

awk -F'[][]' '{print $2}'删除方括号。我不明白如何进一步进行。

awk
  • 2 个回答
  • 138 Views
Martin Hope
Ahmad Ismail
Asked: 2023-07-07 12:36:36 +0800 CST

systemd 在关机期间无法卸载

  • 5

起初,我的机器在关闭时发出以下消息。

Job usere1000.service/stop running (59s / no Limit): User job app-gnome-yandexx2ddisk-1908.scope/stop running (58s / no limit)...

然后我设置的KillUserProcesses=yes是/etc/systemd/logind.conf. 现在机器先关机但报错

Failed unmounting media-ismail-SSDWorking.mount - /media/ismail/SSDWorking.

顺便提一下,我Yandex.Disk通过守护进程进行的同步位于此 SSD (/media/ismail/SSDWorking) 中,该 SSD 之前已发出消息。

也许是因为我的系统在卸载之前没有杀死进程(我不确定)。

更新1:

我发现/run/systemd/generator/media-ismail-SSDWorking.mount有以下内容:

# Automatically generated by systemd-fstab-generator

[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=blockdev@dev-disk-by\x2dlabel-SSDWorking.target

[Mount]
What=/dev/disk/by-label/SSDWorking
Where=/media/ismail/SSDWorking
Options=nosuid,nodev,nofail,x-gvfs-show

我想如果我可以添加app-gnome-yandexx2ddisk-1908.scopeviaAfter=用于systemd-fstab-generator 卸载那么它可能会解决问题。

更新2:

$ systemd-umount /dev/sda1
$ journalctl -xe
 A stop job for unit media-ismail-SSDWorking.mount has begun execution.
░░
░░ The job identifier is 3897.
Jul 07 12:38:22 debian-i5 umount[10089]: umount: /media/ismail/SSDWorking: target is busy.
Jul 07 12:38:22 debian-i5 systemd[1]: media-ismail-SSDWorking.mount: Mount process exited, code=exited, status=32/n/a
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ An n/a= process belonging to unit media-ismail-SSDWorking.mount has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 32.
Jul 07 12:38:22 debian-i5 systemd[1]: Failed unmounting media-ismail-SSDWorking.mount - /media/ismail/SSDWorking.
░░ Subject: A stop job for unit media-ismail-SSDWorking.mount has finished
░░
░░ The job identifier is 3897 and the job result is failed.

更新3:

如果我运行yandex-disk stop,那么systemd-mount /dev/sda1它就会卸载。所以问题是,系统yandex-disk在尝试卸载之前没有停止。

更新4:

我已经运行了以下命令:

sudo tee /etc/systemd/system/run-before-shutdown.service << END
[Unit]
Description=Run my custom task at shutdown
Requires=network.target
DefaultDependencies=no
Before=reboot.target shutdown.target

[Service]
Type=oneshot
User=ismail
Group=ismail
ExecStart=/bin/true
ExecStop=/usr/bin/bash -c '/usr/bin/yandex-disk stop'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
END

sudo systemctl daemon-reload
sudo systemctl start run-before-shutdown.service
sudo systemctl enable run-before-shutdown.service

仍然出现错误:

Failed unmounting media-ismail-SSDWorking.mount - /media/ismail/SSDWorking.
debian
  • 1 个回答
  • 36 Views
Martin Hope
Ahmad Ismail
Asked: 2023-07-06 14:10:36 +0800 CST

如何切换到不同的 xdg-desktop-portal?

  • 8

在我的机器上,有多个 xdg-desktop-portal

$ ls -la /usr/share/xdg-desktop-portal/portals
.rw-r--r-- 100 root 23 Mar 14:48 gnome-keyring.portal
.rw-r--r--  99 root 20 Mar 02:25 gnome-shell.portal
.rw-r--r-- 548 root 18 Oct  2022 gnome.portal
.rw-r--r-- 495 root 29 Nov  2022 gtk.portal

切换到不同 xdg-desktop-portal 的命令是什么?

debian
  • 1 个回答
  • 123 Views
Martin Hope
Ahmad Ismail
Asked: 2023-07-06 14:07:29 +0800 CST

我当前使用哪个 xdg-desktop-portal?

  • 8

在我的机器上,我有多个 xdg-desktop-portal 实例:

$ ls -la /usr/share/xdg-desktop-portal/portals
.rw-r--r-- 100 root 23 Mar 14:48 gnome-keyring.portal
.rw-r--r--  99 root 20 Mar 02:25 gnome-shell.portal
.rw-r--r-- 548 root 18 Oct  2022 gnome.portal
.rw-r--r-- 495 root 29 Nov  2022 gtk.portal

我无法确定当前正在使用哪一个。

我可以使用什么命令来查找我正在使用哪个 xdg-desktop-portal?

debian
  • 2 个回答
  • 237 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-25 14:59:57 +0800 CST

所选软件包应使用“unstable”存储库,其余软件包应使用“stable”存储库

  • 5

我添加了两个包源

deb https://deb.debian.org/debian bookworm main
deb https://deb.debian.org/debian unstable main

我想安装fzf并rofi从unstable. unstable我也希望他们在我跑步时获取更新sudo apt update && sudo apt upgrade.

我希望所有其他软件包都用于bookworm安装和更新。

我怎样才能做到这一点?

debian
  • 1 个回答
  • 18 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-25 14:52:49 +0800 CST

我需要在哪里设置 $PATH 变量,以便当我使用 zsh 作为默认 shell 时 .desktop 文件可以看到

  • 5

我使用的是 Debian 12。Gnome 43。zsh 是我的默认 shell ( sudo chsh --shell /usr/bin/zsh ismail)。

在我的 .zshrc 中,我设置了路径变量,如下所示:

export PATH="$HOME/.dotfiles/.cargo/bin:$PATH"

alacritty 二进制文件位于:

% which alacritty
/home/ismail/.dotfiles/.cargo/bin/alacritty

以下桌面文件有效:

[Desktop Entry]
Type=Application
Exec="/home/ismail/.dotfiles/.cargo/bin/alacritty"
Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;

以下桌面文件不起作用:

[Desktop Entry]
Type=Application
Exec=alacritty
Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;

我不知道为什么这不起作用。

我想指出一件事。

$ which foliate
/usr/bin/foliate

如果我设置了Exec=foliate,那么它就起作用了。所以,我猜这与路径有关。运行文件的系统.desktop可能看不到 中设置的路径变量.zshrc。

这个时候我能做什么呢。

更新1:

如果我使用以下桌面文件:

[Desktop Entry]
Type=Application
Exec=gnome-terminal -e "zsh -c 'echo $PATH;$SHELL'"
Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;

Name=Alacritty
GenericName=Terminal
Comment=A fast, cross-platform, OpenGL terminal emulator
StartupWMClass=Alacritty
Actions=New;

那么路径变量是:

/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

% echo $SHELL        
/usr/bin/zsh

% echo $PATH 
/home/ismail/.dotfiles/.cargo/bin:/home/ismail/.local/bin:/home/ismail/bin:/home/ismail/.dotfiles/.resources/git-scripts:/home/ismail/.dotfiles/.resources/zsh-scripts:/home/ismail/.dotfiles/.resources/python-scripts:/home/ismail/.dotfiles/.resources/bash-scripts:/home/ismail/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

因此,桌面文件看不到第一部分或我稍后在 .zshrc ( /home/ismail/.dotfiles/.cargo/bin:/home/ismail/.local/bin:/home/ismail/bin:/home/ismail/.dotfiles/.resources/git-scripts:/home/ismail/.dotfiles/.resources/zsh-scripts:/home/ismail/.dotfiles/.resources/python-scripts:/home/ismail/.dotfiles/.resources/bash-scripts:) 中设置的路径变量。

我需要在哪里设置 $PATH 变量,以便.desktop当我使用 zsh 作为默认 shell 时文件可以看到。

debian
  • 2 个回答
  • 36 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-25 04:20:36 +0800 CST

从不同来源安装软件包时“sudo apt update”的行为

  • 5

假设有两个包源

deb https://deb.debian.org/debian bookworm main
deb https://deb.debian.org/debian unstable main

然后使用unstable安装了一个软件包sudo apt -t unstable install foo

现在,当我运行时sudo apt update && sudo apt upgrade将从或foo获取更新。bookwormunstable

debian
  • 1 个回答
  • 16 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-24 06:49:51 +0800 CST

使用外部字符串操作工具重命名多个文件夹

  • 5

我正在使用ccase。

以下命令有效。

$ mv camelCase (ccase -t Kebab camelCase)

现在我尝试使用以下方法重命名多个目录:

$ find . -type d -execdir rename 's/(.*)/$(ccase -t Kebab $1)/' '{}' \+

这不起作用,我收到此错误消息:

Can't rename ./camelCase3 1000 4 24 27 30 46 121 132 1000ccase -t Kebab ./camelCase3): No such file or directory

我能做些什么?

command-line
  • 3 个回答
  • 36 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-11 16:20:57 +0800 CST

如果 zsh 中没有其他绑定,那么匹配的通用键绑定是什么?

  • 6

在fish shell中,可以通过指定空字符串(即 '' )的 SEQUENCE 来设置在没有其他绑定匹配的情况下匹配的通用键绑定。

例如:

bind '' self-insert

我检查了zsh 的文档以了解类似的功能,它说:

-m

将内置的元键绑定集添加到选定的键映射。只有未绑定或绑定到自插入的键才会受到影响。

我不确定我是否可以将它用于我的目的。

如果 zsh 中没有其他绑定,那么匹配的通用键绑定是什么?

zsh
  • 1 个回答
  • 26 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-05 12:05:32 +0800 CST

如何检查字符串是否以转义序列 (\n) 结尾

  • 10

我有一个x带有尾随换行符的变量。

printf -v x 'hello\n'

如何找出的最后一个字符x是\n?

bash
  • 2 个回答
  • 1036 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-01 18:25:40 +0800 CST

如何使用 zle widget 选择整个缓冲区?

  • 7

我有一个 zle 小部件,例如:

_ctrl-a() {
  CURSOR=0
  if ((MARK == 0)); then
    zle set-mark-command
  fi

  if [ "$BUFFERLINES" -gt 1 ]; then
    zle end-of-buffer-or-history
  else
    zle end-of-line
  fi
}

zle -N _ctrl-a
bindkey '^A' _ctrl-a # Ctrl+A

它选择整个缓冲区。我的意思是它将光标放在缓冲区的开头,开始标记然后将光标放在缓冲区的末尾。

在这里,我用于多行命令的小部件是end-of-buffer-or-history,但是,我希望它是end-of-buffer。

所以,我想更换:

if [ "$BUFFERLINES" -gt 1 ]; then
  zle end-of-buffer-or-history
else
  zle end-of-line
fi

和

zle end-of-buffer

但是好像没有widget for end-of-buffer.

我能做些什么?

PS如果我能使用变量选择整个缓冲区,那将是一个很好的学习经验MARK。

zsh
  • 1 个回答
  • 31 Views
Martin Hope
Ahmad Ismail
Asked: 2023-06-01 10:34:44 +0800 CST

如何找到内置 zsh 小部件 (zle) 的源代码?

  • 6

内置 zle 小部件存储在哪里?beginning-of-buffer-or-history我正在尝试查找和 的代码beginning-of-line。zle -al输出显示这些存在于我的机器中。

我跑了:

% echo $widgets[beginning-of-buffer-or-history]
user:_zsh_autosuggest_bound_1_beginning-of-buffer-or-history
% echo $widgets[beginning-of-line]
user:_zsh_autosuggest_bound_1_beginning-of-line

找不到小部件所在的位置。

zsh
  • 1 个回答
  • 31 Views
Martin Hope
Ahmad Ismail
Asked: 2023-05-29 18:48:42 +0800 CST

仅在过程完成时显示整个输出

  • 8

这是我的脚本:

#! /bin/bash

ret=0
file_out1=$(mktemp)
file_out2=$(mktemp)

(echo first start; sleep 2s; echo first finish;) &> $file_out1 &
ret=$?
P1=$!
(echo second start; sleep 1s; echo second finish;) &> $file_out2 &
ret=$?
P2=$!

wait $P1 $P2 || ret=$?

cat $file_out1
cat $file_out2

exit $ret

在这里,输出是:

first start
first finish
second start
second finish

但输出应该是:

second start
second finish
first start
first finish

我的意思是,应该在完成cat $file_out1后立即运行并且应该在完成后立即运行。P1cat $file_out2P2

而且,我要确保P1成功结束,P2成功结束。最后,我怎么知道P1或P2/或两者是否有错误。

在此脚本中,$ret无法正常工作(它总是exit 0)。在它工作之后,很高兴知道是$ret来自P1还是P2。比如说P1有返回码 x1,P2有返回码 x2。如果存在非零退出代码,则使用非零返回代码退出程序。

更新1:

askubuntu 中的一个答案建议我们可以使用--group并行命令的参数来确保每个命令的输出等到命令完成(避免混合输出)。

它显示的命令是parallel --group 'echo -n {};sleep {};echo {}' ::: 1 3 2 4。

这个命令在我的机器上有效。但是,我不明白如何在我的上下文中使用此命令。

我的意思是我怎样才能得到

second start
second finish
first start
first finish

当输入命令echo first start; sleep 2s; echo first finish;和echo second start; sleep 1s; echo second finish;using gnu并行时。

更新 2:

我目前所在的代码是:

#! /bin/bash

function first {
    echo first start
    sleep 2s
    echo first finish
}
function second {
    echo second start
    sleep 1s
    echo second finish
}

export -f first && export -f second

parallel -j2 ::: first second

这实际上解决了我的问题。

bash
  • 1 个回答
  • 64 Views
Martin Hope
Ahmad Ismail
Asked: 2023-05-28 21:11:37 +0800 CST

条件并行时运行

  • 5

我有一个像这样的脚本:

#!/bin/bash

if findmnt --source UUID=309689b5-ea5c-4175-84c7-192631553eab --source PARTLABEL=WDPurple8TB --mountpoint /media/ismail/WDPurple8TB --types ext4 --noheadings; then
    udisksctl unmount -b /dev/disk/by-label/WDPurple8TB
    udisksctl power-off -b /dev/disk/by-label/WDPurple8TB
    echo "Power-Off /dev/disk/by-label/WDPurple8TB"
fi

if findmnt --source UUID=151cf7f0-461a-416f-8e44-63d799418958 --source PARTLABEL=WDPurple6TB --mountpoint /media/ismail/WDPurple6TB --types ext4 --noheadings; then
    udisksctl unmount -b /dev/disk/by-label/WDPurple6TB
    udisksctl power-off -b /dev/disk/by-label/WDPurple6TB
    echo "Power-Off /dev/disk/by-label/WDPurple6TB"
fi

在这里,如果两个 if-fi 代码块并行运行会更好。但是,if-fi 代码块中的 stdout 和 stderr 应该成组出现(我的意思是它们的输出不应该重叠)。我的意思是:

在我们到达第一个if-fi 代码块的末尾后,应显示以下三行的标准输出和标准错误。

udisksctl unmount -b /dev/disk/by-label/WDPurple8TB
udisksctl power-off -b /dev/disk/by-label/WDPurple8TB
echo "Power-Off /dev/disk/by-label/WDPurple8TB"

在我们到达第二个if-fi 代码块的末尾后,应显示以下三行的标准输出和标准错误。

udisksctl unmount -b /dev/disk/by-label/WDPurple6TB
udisksctl power-off -b /dev/disk/by-label/WDPurple6TB
echo "Power-Off /dev/disk/by-label/WDPurple6TB"

我怎样才能做到这一点?

bash
  • 2 个回答
  • 54 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve