Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

4
用sed处理bash变量
bash变量LATLNG像这样在方括号中包含纬度和经度值 (53.3096,-6.28396) 我想将它们解析成一个名为LAT和LON的变量,我正试图通过sed像这样 LAT=$(sed "s/(\(.*\),\(.*\))/\1/g" "$LATLNG") LON=$(sed "s/(\(.*\),\(.*\))/\2/g" "$LATLNG") 但是,出现以下错误: sed: can't read (53.3096,-6.28396): No such file or directory


3
用-execdir查找
当我find和我一起跑步时,-execdir没有得到预期的结果。 例如: mkdir -p a/b/c find . -type d -execdir touch foo \; $ tree a a ├── b │ ├── c │ └── foo └── foo 目录c不包含foo文件。如何find在每个目录中本地访问和执行某些操作?

2
mv:无法统计shell脚本中没有此类文件或目录
我编写了一个脚本,将某些文件从一个文件夹移动到另一个文件夹,但是出现以下错误,我检查了2个文件夹,并注意到1个文件夹中有此类文件,而另一个则没有此类文件,但是为什么它们都显示“ MV”无法统计没有此类文件或目录” mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/194.199.68.165_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/194.42.17.124_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/195.113.161.13_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/203.159.127.3_tcp.folder/data/*': No such file or directory mv: cannot stat `/home/esolve/project/capture/tcp_50x50/dest_folder/212.199.61.205_tcp.folder/data/*': No such file or directory mv: cannot stat …
16 shell  rename 

1
命令输出不在stderr或stdout中
我偶然发现了这个问题,所以我想知道这怎么可能? 标准运行命令: # zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 info from server: "Processed 0 Failed 1 Total 1 Seconds spent 0.000017" sent: 1; skipped: 0; total: 1 好的,让我们尝试仅获得第一行: # zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 | head -1 sent: 1; skipped: 0; total: 1 那标准头呢? # zabbix_sender -c …
16 shell  stdout  stderr 

4
如何退出sh程序?
我弄乱了命令并写道 sh -man 现在,我进入了一个sh-3.2似乎无法退出的程序。 Ctrlc,Ctrlz或Ctrlx不起作用。 exit,quit,q,:q也不起作用。 所有的google答案都是用于以编程方式退出shell脚本。



2
来自moreutils的海绵-外壳重定向有什么区别?有用的例子?
> brew install moreutils ==> Downloading https://homebrew.bintray.com/bottles/moreutils-0.55.yosemite.bottle.tar.gz ######################################################################## 100.0% ==> Pouring moreutils0.55.yosemite.bottle.tar.gz 🍺 /usr/local/Cellar/moreutils/0.55: 67 files, 740K 海绵读取标准输入并将其写到指定文件中。与Shell重定向不同,海绵在写入输出文件之前先吸收所有输入。这允许构造读取和写入同一文件的管道。 我不明白 请给我一些有用的例子。 什么吸收了是什么意思?

3
“子外壳”和“子进程”之间的确切区别是什么?
根据这个和这个,一个子shell通过使用括号开始(…)。 ( echo "Hello" ) 根据这个,这个和这个,当命令以& echo "Hello" & Posix规范在此页面中使用该词subshell,但未定义该词,并且在同一页面上也未定义“子进程”。 两者都使用内核fork()功能,对吗? 那么,将某些forks称为“ sub-shell”,而将另一些forks称为“子进程”,则有什么区别呢?
16 bash  shell  subshell 

6
如果Bourne shell在发行版中不可用,则在hashbang中使用/ bin / sh是否正确?
通常,shell脚本在脚本文件的第一行包含以下注释:#!/bin/sh。根据我所做的研究,这称为“哈希爆炸”,这是常规注释。该注释通知Unix该文件由Bourne Shell在目录下执行/bin。 我的问题从这一点开始。到目前为止,我还没有看到这样的评论#!/bin/bash。一直如此#!/bin/sh。但是,Ubuntu发行版没有Bourne Shell程序。他们有Bourne Again Shell(bash)。 在这一点上,将注释#!/bin/sh放在用Ubuntu发行版编写的Shell脚本中是否正确?

8
Linux Shell脚本:仅在程序存在时运行,如果不存在则将其忽略
我编程一个Linux的shell脚本,将只有在合适的工具,比如它的执行过程中打印状态横幅figlet,被安装(是这样的:到达系统的路径)。 例: #!/usr/bin/env bash echo "foo" figlet "Starting" echo "moo" figlet "Working" echo "foo moo" figlet "Finished" 我想为我的脚本工作无差错,即使figlet在没有安装。 什么是实用的方法?

3
通过SSH在命令中与true进行ORing
当我尝试pkill -f通过ssh远程运行,并尝试丢弃可能的错误代码(即使未找到任何进程,继续|| true执行脚本的其余部分)时,其行为也不符合我的预期。 $ pkill asdf || true $ echo $? 0 $ pkill -f asdf || true $ echo $? 0 $ ssh pi@10.20.0.10 "pkill asdf || true" $ echo $? 0 $ ssh pi@10.20.0.10 "pkill -f asdf || true" 255 我想是ssh返回255,而不是引号之间的命令,但是为什么呢?
15 shell  ssh  kill 

3
Bash,总是检查$ PWD作为路径的一部分吗?
背景:我的一位不是Linux背景的同事问我有关在使用./某些命令之前而不是其他命令的问题,因此我向他解释了如何PATH工作以及如何选择运行二进制文件。他的回答是这很愚蠢,他只是不想./在命令前键入。 问题:有没有一种方法可以轻松地修改外壳的行为,使其$PWD始终是第一个项目PATH?
15 shell  usability 


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.