Arch Linux是一个Linux发行版,旨在轻量级和简单。从开发人员的角度来看,它的开发重点是简洁,优雅,代码正确和极简主义。
/usr/local/bin 中的 Shell 脚本无法工作,除非在使用前在终端中明确获取来源
我在/usr/local/bin中有一个shell脚本 #!/bin/sh 提炼() { 如果[-z“$1”];然后 # 如果没有给出参数则显示用法 echo "用法:提取. 我在 /usr/local/bin 中有一个 shell 脚本 #!/bin/sh extract() { if [ -z "$1" ]; then # display usage if no parameters given echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>" elif [ -f "$1" ]; then case $1 in *.tar.bz2) tar xvjf "$1" ;; *.tar.gz) tar xvzf "$1" ;; *.tar.xz) tar xvJf "$1" ;; *.lzma) unlzma "$1" ;; *.bz2) bunzip2 "$1" ;; *.rar) unrar x "$1" ;; *.gz) gunzip "$1" ;; *.tar) tar xvf "$1" ;; *.tbz2) tar xvjf "$1" ;; *.tgz) tar xvzf "$1" ;; *.zip) unzip "$1" ;; *.Z) uncompress "$1" ;; *.7z) 7z x "$1" ;; *.xz) unxz "$1" ;; *.exe) cabextract "$1" ;; *) echo "extract: '$1' - unknown archive method" ;; esac echo "extraction successful: $1" else echo "$1 - file does not exist" fi } 但是,除非我在当前终端中执行source /usr/local/bin/extract,否则它无法正常运行。我知道 /usr/local/bin 在我的路径中。 我尝试将脚本的所有者更改为 root:root 以查看是否有影响。文件权限为 755。我尝试在 .zshenv 中再次获取 /usr/local/bin 的源代码,但无论如何它已经在 $PATH 中了。我可以让它工作的唯一方法是直接使用 source /usr/local/bin/extract 。我尝试过在进行这样的各种更改后重新启动。我在 shellcheck 中检查了文件中的 bashisms。我尝试了不同的 shebangs,#!/usr/bin/env bash 和 #!/bin/sh。我的 /bin/sh 链接到 dash。 我希望 /usr/local/bin 中的任何脚本或二进制文件都可以工作,而无需为每个终端会话获取它。 发布此内容后不久我就意识到了这个问题。所有代码都在函数内部,并且从未被调用。当我获取文件时它起作用了,因为该函数进入了我当前 shell 的本地范围。我删除了函数包装器并将其作为原始代码放入 shell 脚本中,例如 if [ -z "$1" ]; then # display usage if no parameters given echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>" elif [ -f "$1" ]; then case $1 in *.tar.bz2) tar xvjf "$1" ;; *.tar.gz) tar xvzf "$1" ;; *.tar.xz) tar xvJf "$1" ;; *.lzma) unlzma "$1" ;; *.bz2) bunzip2 "$1" ;; *.rar) unrar x "$1" ;; *.gz) gunzip "$1" ;; *.tar) tar xvf "$1" ;; *.tbz2) tar xvjf "$1" ;; *.tgz) tar xvzf "$1" ;; *.zip) unzip "$1" ;; *.Z) uncompress "$1" ;; *.7z) 7z x "$1" ;; *.xz) unxz "$1" ;; *.exe) cabextract "$1" ;; *) echo "extract: '$1' - unknown archive method" ;; esac echo "extraction successful: $1" else echo "$1 - file does not exist" fi 现在效果很好。我想知道是否有办法保持这个功能?我想我会测试一下是否可以在脚本末尾调用 extract() 。
我正在用 CLion IDE 做一个 QT 应用程序,按照本教程我选择了“在相关应用程序中打开”选项但是当我尝试打开我的 .ui 文件时,它提示下载 f...
我使用的是 Arch Linux,在尝试推送我的 rip 时出现了这个问题 错误:RPC 失败; curl 56 OpenSSL SSL_read: error:140943FC:SSL routines:ssl3_read_bytes:sslv3 alert bad record mac, errno 0
在 Arch Linux 上的 netbeans 16.1 上打开 java 项目时出现“Broken platform 'JDK_17'”
我已经通过 pacman 的默认包安装了 jdk 17:“openjdk 17.0.6 2023-01-17 “ 我也有 netbeans 16-1 也使用 pacman(我知道有 17 版本可用但我想要...
在 linux 中使用带有 rocm 的 pytorch 时出现段错误
我有一个 amd rx 6600,我正在尝试将 pytorch 与 rocm 一起使用。我正在运行 archlinux 并使用发行版提供的软件包。当我尝试访问 gpu 内存时,程序崩溃了。好像……
Arch Linux 系统更新:错误:GPGME 错误:无数据
当我最终决定升级运行 vanilla Arch Linux 的笔记本电脑时(由于互联网问题),我不断收到这样的错误: $ sudo pacman -Syu :: 同步包数据库......
是否有可能使 window_type_dock 仅显示在 i3 窗口管理器的 1 个工作区中
我正在努力迫使停靠点仅显示在一个工作区中,而不显示在任何其他工作区中。 我目前正在使用 elkowar 的 eww 小部件制作仪表板。 它的问题是它一直跟着我,过度...
我到达了“安装基本包”的步骤,并得到了错误。 在此处输入图像描述 我认为我的镜像列表中没有错误。请在此处输入图像描述 和 /var/lib/pacma...
我在 Arch Linux 中遇到这个问题:无法创建虚拟设备:无法创建 Android 虚拟设备无法运行 mksdcard SDK 工具
我在 64 位系统上使用 arch linux。我尝试安装 Android Studio,安装显示此错误: 无法创建虚拟设备:无法创建Android虚拟设备 无法...
像许多弓箭手一样,我每天都使用 pacman 来更新我的软件。 经常有这样的更新: foo-1.1 ---> foo.1.2 我想知道是否有办法查看从 foo-1 更新的内容...
我正在尝试为 Arch 创建一个安装脚本,我想自动进行磁盘分区。我希望脚本足够智能,能够识别磁盘上剩余的可用空间,并自动...
所以,我正在使用 Xonsh Shell 和 tmux,在 ~/.xonshrc 上,内容是这样的: # XONSH WEBCONFIG 开始 $XONSH_COLOR_STYLE = 'rainbow_dash' # XONSH 网络配置结束 $XONSH_SHOW_TRACEBACK = 真 $all_p...
尝试打开集成终端时在代码 (1.76.1) 上出现此错误。 终端进程启动失败:启动时发生本机异常(/usr/lib/code/node_modules.asar.unpac...
我正在尝试为 Visual Studio Code 安装 C/C++ 扩展,但在扩展列表中找不到它。我正在运行 Arch Linux,但扩展网站说它是跨平台的。 我也试过了
Arch Linux 在安装新包之前更新包的命令是什么? 例如,我知道在 Ubuntu 中,我在终端窗口中执行此操作: sudo apt-get 更新 sudo apt-get <...
我已经在控制台 (Ctrl+Alt+F1) 中启动了 emacs (emacs -Q)。 “左Alt键”是 工作,而“右 Alt 键”不工作。如何解决问题。我在 archlinux 上运行 emacs
这是我的Arch Linux的grub.cfg文件的内容。 # # 不要编辑这个文件 # # 它是由 grub-mkconfig 使用模板自动生成的 # 来自 /etc/grub.d 和来自 /etc/def 的设置...
我首先决定通过从 Windows 10 Pro 64 位(更新是最新的)移动安装 Linux,使用旧的 Acer 不受欢迎的主板、DDR3 12GB、Intel i5、GTX 1050Ti,并且没有 TPM 模块和 bui。 ..
Qt6AndroidMacros.cmake 没有安装 Qt
我正在使用 arch 并使用 pacman 安装了 qt6。 为 Android 配置时,cmake 正在尝试使用此文件: Qt6AndroidMacros.cmake 然而,它没有在预期的路径中找到(而且,不在我的整个
如何修复错误`libcrypto.so.3:无法打开共享对象文件:没有这样的文件或目录”?
前提 我想在两台计算机(ArchLinux 和 Windows)之间共享一个键盘,并且有一些选项可以实现它。 我选择了一个使用 Barrier 的选项。 预计 以下步骤......