Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

8
如何检查符号链接是否存在
我正在尝试检查bash中是否存在符号链接。这是我尝试过的。 mda=/usr/mda if [ ! -L $mda ]; then echo "=> File doesn't exist" fi mda='/usr/mda' if [ ! -L $mda ]; then echo "=> File doesn't exist" fi 但是,这不起作用。如果是“!” 被遗忘,它永远不会触发。而如果 '!' 在那里,它每次都会触发。
208 bash  symlink 


10
查找:-exec缺少参数
今天我得到了一个命令的帮助,但是它似乎没有用。这是命令: find /home/me/download/ -type f -name "*.rm" -exec ffmpeg -i {} -sameq {}.mp3 && rm {}\; 外壳返回 find: missing argument to `-exec' 我基本上想做的是递归地遍历一个目录(如果它还有其他目录),然后对.rm文件类型运行ffmpeg命令,然后将它们转换为.mp3文件类型。完成此操作后,删除.rm刚刚转换的文件。 我对此表示感谢。
206 bash  shell  find  arguments  exec 

18
快速的UNIX命令在文件中间显示特定行?
尝试调试服务器问题,而我唯一的日志文件是20GB日志文件(甚至没有时间戳!为什么人们将其System.out.println()用作日志记录?在生产中?!) 使用grep,我找到了要查看的文件区域,行347340107。 除了做类似的事情 head -<$LINENUM + 10> filename | tail -20 ...这将需要head通读日志文件的前三亿四千七百万行,是否有一种快速简便的命令将347340100-347340200行(例如)转储到控制台? 更新我完全忘记了grep可以在比赛中打印上下文...这很好。谢谢!
206 linux  bash  unix  text 

5
在Bash中将定界字符串读入数组
我有一个包含以空格分隔的字符串的变量: line="1 1.50 string" 我想用空格作为分隔符来拆分该字符串,并将结果存储在数组中,以便执行以下操作: echo ${arr[0]} echo ${arr[1]} echo ${arr[2]} 输出 1 1.50 string 我在某个地方找到了行不通的解决方案: arr=$(echo ${line}) 如果在此之后运行上面的echo语句,则会得到: 1 1.50 string [empty line] [empty line] 我也试过 IFS=" " arr=$(echo ${line}) 具有相同的结果。有人可以帮忙吗?
206 arrays  string  bash  shell 

7
使用Bash时需要转义哪些字符?
在Bash中是否有需要转义的字符的完整列表?可以仅通过进行检查sed吗? 特别是,我正在检查是否%需要逃脱。我试过了 echo "h%h" | sed 's/%/i/g' 并且工作得很好,没有逃脱%。这是否意味着%不需要逃脱?这是检查必要性的好方法吗? 更笼统:它们是shell和一起逃脱的相同字符bash吗?

15
从管道将值读取到外壳变量中
我正在尝试让bash处理来自管道的stdin的数据,但是没有运气。我的意思是没有以下工作: echo "hello world" | test=($(< /dev/stdin)); echo test=$test test= echo "hello world" | read test; echo test=$test test= echo "hello world" | test=`cat`; echo test=$test test= 我希望输出在哪里test=hello world。我试过用“”引号括住"$test"也不起作用。
205 linux  bash  pipe 


3
Ubuntu说“ bash:./program权限被拒绝”
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我在计算机1和计算机2上运行Ubuntu。在计算机1上编译了C ++程序,可以使用终端从终端执行它./program_name。运行正常。 但是,当我尝试在计算机2上执行此操作时,它说: bash: ./program_name: permission denied 有什么问题,我该怎么办?
205 bash  shell  sh 






5
Bash:If / Else语句一行
我正在尝试检查some_process服务器上是否正在运行某个进程(假设称为)。如果是,则回显1,否则回显0。 这是我正在使用的命令,但仅部分起作用(下面的更多信息)。请注意,我需要一行编写脚本。 ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi 注:本[s]中some_proces[s]是防止grep从返回本身。 如果some_process正在运行,则"1"得到回显,这很好。但是,如果some_process未运行,则不会响应。
204 bash 

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.