bash相关内容

区分退出和会话超时

我有以下要求: 当用户终止 bash 会话时生成审计日志(退出) 当 bash 会话超时时生成审计日志 那些审核日志必须不同.我正在使用以下脚本 trap.sh: 导出 TMOUT=10函数句柄超时{回声“超时"}函数句柄出口{回声“退出"}陷阱句柄退出退出 现在如果我这样做: valegon@precision ~ (master) $ bashvalegon@precisi ..
发布时间:2021-11-30 16:50:48 服务器开发

linux 上的 mpc/mpd:如何播放本地 wav 文件

我正在尝试将本地文件添加到 mpd(通过 mpc)并播放.我的平台是 OpenWRT 嵌入式 linux. 因此,从手册页中,它指出: mpc add 将歌曲添加到当前播放列表 如果我这样做: root@OpenWrt:~/.mpd# mpc add/usr/share/baresip/ring.wav添加/usr/share/baresip/ring.wav 时出错:找不到目录或文件 ..
发布时间:2021-11-30 16:16:21 服务器开发

原子地移动目录

我在同一个父目录中有两个目录.调用父目录 base 和子目录 alpha 和 bravo.我想用 bravo 替换 alpha.最简单的方法是: rm -rf alphamv 勇敢的阿尔法 mv 命令是原子的,但 rm -rf 不是.bash 中是否有一种简单的方法可以将 alpha 原子替换为 bravo?如果没有,有没有复杂的方法? 附录: 顺便说一下,如果目录在短时间内不存在 ..
发布时间:2021-11-30 14:55:38 服务器开发

致命:打开/dev/null 或 dup 失败:没有这样的文件或目录

我是新来的,我会尽量解释我的问题,请忽略任何错误. 我使用的是 git 版本 git-2.8.2它工作了一天然后出现了这个问题.我正在使用 gcloud 存储库.首先我尝试了 gcloud clone 命令然后发生了这个错误 然后为了确保 git 在那里我厌倦了 git 命令然后发生这个错误 然后我通过打开 git Bash 进行双重检查,但也出现了同样的错误. 我尝试重新 ..
发布时间:2021-11-30 14:21:30 其他开发

如何将一系列 AT 命令发送到 bash 中的串行端口?

在 Linux 中,我需要将一系列 AT 命令发送到串行端口,例如/dev/ttyS0,在发送下一个命令之前必须等待 OK 回答.我可以想象做类似的事情 echo 'AT' >/dev/ttyS0回声'ATS0 = 0'>开发/ttyS0... 但这不会评估来自该端口上的设备的答案. 是否有一种非常的方法可以在 bash 脚本中自动化,可能在 socat 和/或 的帮助下microcom ..
发布时间:2021-11-30 13:57:39 服务器开发

即使没有真正的用户,如何在我的 Linux 服务中为 Asterisk 设置环境变量?

我创建了一个作为守护进程运行的 linux 服务(并从/etc/init.d/X 启动).我需要设置一些应用程序可以访问的环境变量. 这是场景.该应用程序是一堆 Perl AGI 脚本,它们依赖于(因此需要作为)asterisk 用户运行,但 asterisk 没有 shell.理想情况下,我只是将其设置在 /home/asterisk/.bashrc 中,但 asterisk 不存在. ..
发布时间:2021-11-30 13:13:49 服务器开发

有没有办法在 Bash 脚本中创建键值对?

我正在尝试使用 Bash 脚本创建一个键值对字典.我正在尝试使用这种逻辑: 声明 -d 字典默认写入 "$dictionary" 键 - 字符串 "$value" ...其中 $dictionary 是一个变量,但这不起作用. 有没有办法在 Bash 脚本中创建键值对? 解决方案 在 bash 版本 4 中引入了关联数组. declare -A arrarr["key1"]=v ..
发布时间:2021-11-30 13:00:17 其他开发

关联数组的键 ${!a[@]} 和值 ${a[@]} 是否以相同的顺序展开?

在 bash 中,关联数组(也称为字典或哈希映射)是无序的.对于关联数组 a,我们可以使用 ${!a[@]} 列出所有键(也称为索引)和 ${a[@]}.我知道这些结构不会以固定顺序展开.我想知道是否至少有一些保证.我找不到任何.然而, [ "${a[*]}" = ${a[*]} ] 在任何实现中都会失败似乎是不现实的.同样,${!a[@]} 似乎与 ${a[@]} 的展开顺序相同.如果我们在 $ ..
发布时间:2021-11-30 12:59:49 其他开发

Bash“声明-A"不适用于 macOS

我的猜测是 Bash 没有在 macOS 上更新.当谷歌搜索更新 Bash macOS 时,我不断收到错误修复补丁.无论如何,我需要在 macOS Bash 中使用关联数组,其中命令: 声明 -A 产生错误: -bash:声明:-A:无效选项 声明:用法:声明 [-afFirtx] [-p] [name[=value] ...] 我有优胜美地. 解决方案 declare ..
发布时间:2021-11-30 12:59:09 服务器开发

Bash 间接引用关联数组

在这个非常简单的例子中,我需要同时处理数组元素的键和值: declare -A writer作家[H.P.]=洛夫克拉夫特作家[斯蒂芬]=国王作家[克莱夫]=巴克作家[杰克]=凯旋对于我在 ${!writer[@]}做echo "$i ${writer[$i]}"完毕全名(){指针=$1[@]对于“${!pointer}"中的 i做回声“?$i"完毕}全名作家 该函数必须以与之前的示例循环相同 ..
发布时间:2021-11-30 12:58:42 其他开发

在 Bash 中测试是否声明了关联数组

如何测试是否在 Bash 中声明了关联数组?我可以测试一个变量,如: [ -z $FOO ] &&回声不 但我似乎不适用于关联数组: $ 取消设置 FOO$ 声明 -A FOO$ [ -z $FOO ] &&回声不不$ FOO=([1]=foo)$ [ -z $FOO ] &&回声不不$回声 ${FOO[@]}富 编辑: 感谢您的回答,两者似乎都有效,所以我让速度决定: $ cat ..
发布时间:2021-11-30 12:55:40 其他开发

如何在 Bash 中重命名关联数组?

我需要遍历关联数组并将其内容排空到临时数组(并对值执行一些更新). 然后应该丢弃第一个数组的剩余内容,我想将临时数组分配给原始数组变量. 须藤代码: declare -A MAINARRAY声明 -A TEMPARRAY...填充 ${MAINARRAY[...]} ...当某事;do #Drain 一些值从 MAINARRAY 到 TEMPARRAY${TEMPARRAY["$na ..
发布时间:2021-11-30 12:55:20 其他开发

Bash 中的多维关联数组

我正在尝试创建一个多维关联数组,但需要一些帮助.我已经查看了 此页面中建议的页面所以回答但它让我更加困惑.到目前为止,这是我所拥有的: 脚本: #!/bin/bash声明 -A 人声明-一个人人[“FNAME"]='约翰'人[“LNAME"]='安德鲁'人[“1"]=${人[@]}人[“FNAME"] =“艾伦"人[“LNAME"]='默里'人[“2"]=${人[@]}对于“${!PERS ..
发布时间:2021-11-30 12:53:09 其他开发

Shell 脚本中的关联数组

我们需要一个脚本来模拟关联数组或类似映射的数据结构的 Shell 脚本,任何正文? 解决方案 要添加到 Irfan 的答案,这里有一个简短的get() 的更快版本,因为它不需要对地图内容进行迭代: get() {地图名称=$1;钥匙=$2地图=${!mapName}value="$(echo $map |sed -e "s/.*--${key}=\([^ ]*\).*/\1/" -e ' ..
发布时间:2021-11-30 12:52:01 其他开发

如何在 Bash 中迭代关联数组

基于 Bash 脚本中的关联数组,我需要对其进行迭代以获取键和值. #!/bin/bash声明 -A 数组数组[foo]=bar数组[bar]=foo 我实际上不明白如何在使用 for-in 循环时获取密钥. 解决方案 使用感叹号访问键:${!array[@]},values 使用 ${array[@]} 访问. 您可以像这样迭代键/值对: for i in "${!array ..
发布时间:2021-11-30 12:51:53 其他开发

关联数组:错误“声明:-A:无效选项"

我编写了一个脚本,在 bash (v 4) 中使用关联数组. 它在我使用 4.1.5(1)-release 的本地机器上运行良好. 在生产机器上,使用 4.1.0(1)-release 声明 assoc 数组的以下行失败: declare -A uniqjars 带有消息: /script.sh:第 11 行:声明:-A:无效选项声明:用法:声明[-afFirtx] [-p] [ ..
发布时间:2021-11-30 12:51:13 其他开发

如何在 Bash 中定义哈希表?

Python 词典 的等价物是什么,但在 Bash 中(应该适用于 OS X 和 Linux). 解决方案 Bash 4 Bash 4 本身就支持这个特性.确保你的脚本的 hashbang 是 #!/usr/bin/env bash 或 #!/bin/bash 这样你就不会最终使用 sh.确保您要么直接执行脚本,要么使用 bash script 执行 script.(实际上并没有使用 ..
发布时间:2021-11-30 12:50:53 其他开发

ansible wget 然后执行脚本 =>get_url 等效

我总是想知道使用“ansible方式"(使用get_url等)替换以下shell任务的好方法是什么: - 名称:安装 oh-my-zsh外壳:wget -qO - https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh |重击—— 或 - 名称:安装nodesource repo外壳:curl -sL htt ..
发布时间:2021-11-28 17:59:07 其他开发

在调用/编辑命令时,将 ANSI 颜色转义序列添加到 bash 提示会导致光标位置错误

如果我将命令提示符设置为: export PS1='\033[0;33m[\u@\h \w]\$ \033[00m' 提示的颜色为黄色,'$'字符后的所有内容将是默认的终端颜色.这是我所期望的.但是,如果我回忆起命令行并尝试对其进行编辑,请移动光标 - UpArrow/Ctrl-A (set -o emacs) 或 ESC K (set -o vi)如果我尝试编辑的命令行足够长,则光标不会位于 ..
发布时间:2021-11-28 17:48:09 其他开发