Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

4
是否有可能在bash中从任意字节数偏移量开始读取文件?
我想找到一个8 GB日志(文本)中某处的日期。 我有点绕行一个完整的顺序读取,和第一可以做文件的二元分割(大小),或以某种方式浏览文件系统inodes(这是我知道的非常少约),开始从各个分割点读,直到我找到一个合适的距离偏移从哪里开始我的文本搜索以找到包含日期的行? tail的最后一行的读取没有使用常规的顺序读取,因此我想知道bash中是否可以使用此功能,还是我需要使用Python或C / C ++ ...但是我对某个bash选项特别感兴趣..

4
没有参数的set命令有什么作用?
set没有参数的命令有什么作用? 如我所见,它像env命令一样以字母顺序打印出我的环境变量。并进一步输出一些不同的信息(变量?函数?),例如: __git_printf_supports_v=yes __grub_script_check_program=grub-script-check ... quote () { local quoted=${1//\'/\'\\\'\'}; printf "'%s'" "$quoted" } quote_readline () { local quoted; _quote_readline_by_ref "$1" ret; printf %s "$ret" } 它是什么以及它来自哪里? 我找不到set没有参数的命令信息。实际上,我的Linux发行版中根本没有man页面set。
22 bash  set 

6
使用Sudo执行Bash脚本功能
我有一个脚本,可以执行许多不同的操作,其中大多数不需要任何特殊特权。但是,我包含在一个函数中的一个特定部分需要root特权。 我不希望整个脚本都以root身份运行,我希望能够以root权限从脚本中调用此函数。如有必要,提示输入密码不是问题,因为无论如何它都是交互式的。但是,当我尝试使用时sudo functionx,我得到: sudo: functionx: command not found 如我所料,export没什么不同。我希望能够直接在脚本中执行该功能,而不是出于多种原因而将其分解并作为单独的脚本执行。 有什么办法可以使我的函数对sudo可见,而无需将其解压缩,找到合适的目录,然后将其作为独立脚本执行? 该函数本身大约一页长,包含多个字符串,其中一些用双引号引起来,而某些用单引号引起来。它还取决于主脚本中其他位置定义的菜单功能。 我只希望拥有sudo ANY的人能够运行该功能,因为它的功能之一就是更改密码。
22 bash  sudo  function 

3
在bash中的条件语句中使用grep
我对使用bash编写脚本还是很陌生,只是尝试一些我认为是基本的事情。我想运行从运行Ubuntu 14.04的服务器更新的DDNS。 从dnsimple借用一些代码,这是我到目前为止所拥有的: #!/bin/bash LOGIN="email" TOKEN="token" DOMAIN_ID="domain" RECORD_ID="record" IP=`curl -s http://icanhazip.com/` OUTPUT=` curl -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "X-DNSimple-Domain-Token: $TOKEN" \ -X "PUT" \ -i "https://api.dnsimple.com/v1/domains/$DOMAIN_ID/records/$RECORD_ID" \ -d "{\"record\":{\"content\":\"$IP\"}}"` if ! echo "$OUTPUT" | grep -q "(Status:\s200)"; then echo "match" $(echo "$OUTPUT" | grep -oP '(?<="message":")(.[^"]*)' …


2
为什么此Shell脚本中包含反斜杠?
在conda.sh脚本的副本中,我看到以下几行: if [ -n "${_CE_CONDA}" ] && [ -n "${WINDIR+x}" ]; then SYSP=$(\dirname "${CONDA_EXE}") else SYSP=$(\dirname "${CONDA_EXE}") SYSP=$(\dirname "${SYSP}") fi 我很好奇,为什么在前面的一个反斜杠d中dirname。我认为没有必要。反斜杠的这种用法也出现在源文件的其他位置。我有没有这样做的理由?



1
找不到/ dev / tcp
当我尝试运行以下命令时: echo -e "GET / HTTP/1.1\n\n" | /dev/tcp/74.125.225.19/80 我收到以下错误消息: bash: /dev/tcp/74.125.225.19/80: No such file or directory 以下命令可以正常工作,因此问题涉及到我的使用方式/dev/tcp: echo -e "GET / HTTP/1.1\n\n" | nc 74.125.225.19 80 我在Ubuntu 13.04中,因此该功能应该在我的系统上。我究竟做错了什么?/dev/tcp正确使用的规则是什么?
21 bash  tcp 

2
硬链接算作普通文件吗?
我想知道是否有一种方法可以注册该单词,但是由于大多数现代搜索引擎无法使用长度超过5个单词的短语,因此在此方面我需要一些帮助。 我想知道这是因为我正在制作一个bash脚本,该脚本必须将文件注册为某些类型并做出相应的决定。从技术上讲,这对我的项目并不重要,但我很好奇。 另外,如果它们被认为是常规文件,那么有没有办法检查这些文件是否被硬链接而不需要解析ls -i?有没有一种方法可以检查某些任意文件X是否在不使用find -i命令的情况下硬链接到其他任意文件Y ?


3
在前一个命令写入STDOUT时在STDIN中键入另一个命令是否安全?
也许以前已经回答了这个问题,欢迎您链接到另一个答案... 如果我执行一个shell命令(在一个bashshell中),如下所示: make 然后,当输出make是通过从滚动STDOUT的的make命令,如果我输入make check并按enter之前的第一个命令执行完毕,当make命令终于完成下一个命令make check将选择权并运行。 我的问题很简单: 这危险吗? 这种紧急输入是否有潜在的意外行为? 为什么这样做会起作用?
21 bash  shell  stdout  stdin 

6
除了`>>`以外,还有另一种简单的方法可以将行附加到文件末尾吗?
最近,我在tree_hole文件中回覆了简短的句子。 我曾经echo 'something' >> tree_hole用来做这项工作。 但是我总是担心如果我输入的>不是而不是怎么办>>,因为我经常这样做。 因此,我在bashrc中制作了自己的全局bash函数: function th { echo "$1" >> /Users/zen1/zen/pythonstudy/tree_hole; } export -f th 但是我想知道是否还有另一种简单的方法可以将行添加到文件末尾。因为我可能需要在其他场合经常使用它。 有没有?

6
运行过程完成时发出警报
有在这里被惊动了几个问题,答案就当一个进程完成/退出(1,2) -但所有这些假设用户已经发出该方法本身,因此可以内置入一个警告脚本它控制脚本,或将过程通过管道发送给某种警报。 我的情况是,我希望收到用户未初始化的过程的完成/退出的警报。即,我正在Ubuntu 12.04 LTS服务器上批量处理大量视频文件。这些文件上的某些操作需要很长时间,因此,当一个特定的操作完成时,我想发出某种警报(发送电子邮件会很棒)。他们花了很长时间,以至于一次完全基于PIT手动完成此操作。 为了提供更多信息-假设我正在处理一个特别大的文件,并且我看到它已经发展成FFMPEG脚本,该过程本身就是python脚本(这很复杂,不是我自己编写的,还有其他我不希望进行修改–尽管这是第一种合乎逻辑的方法。我想象发出一个带有所述正在运行的python脚本的PID作为参数的命令或脚本,并且当不再运行具有该PID的进程时,警报脚本将执行其操作。 有任何想法吗?
21 bash  process  top  htop 

5
bash脚本[x $ 1 = x]
我正在阅读bash脚本,但我不明白那里发生了什么。 #!/bin/sh [ x$1 = x ] 第二行是什么[ x$1 = x ] 意思?
21 bash  shell 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.