Questions tagged «shell»

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

3
使用| $ variable中的竖线字符使它成为bash中的另一个参数;如何逃脱呢?
我有一个这样的bash脚本 export pipedargument="| sort -n" ls $pipedargument 但是它给出了错误 ls: |: No such file or directory ls: sort: No such file or directory 似乎将的内容"| sort -n"视为传递给的参数ls。 我如何才能将其转义,以便将其视为常规管道命令? 我试图有条件地设置$pipedargument。我想我可以有条件地执行命令的不同版本,但仍然想知道是否有办法使上述工作正常进行?

3
apt-get更新退出状态
如何检查状态apt-get update? $ apt-get update ; echo "status is: $?" Err http://security.debian.org stable/updates Release.gpg Could not resolve 'security.debian.org' Hit http://192.168.1.100 stable Release.gpg Hit http://192.168.1.100 stable Release Hit http://192.168.1.100 stable/main i386 Packages Hit http://192.168.1.100 stable/contrib i386 Packages Hit http://192.168.1.100 stable/non-free i386 Packages Ign http://192.168.1.100 stable/contrib Translation-en Ign http://192.168.1.100 stable/main Translation-en Ign …
8 shell  apt 

3
更改字符串中第n个字母的大小写
我想换一个字符串的第n个字母的大小写BASH(或任何其他的* nix工具,例如sed,awk,tr等)。 我知道您可以使用以下命令将整个字符串更改为大小写: ${str,,} # to lowercase ${str^^} # to uppercase 是否可以将“测试”的第三个字母的大小写更改为大写? $ export str="Test" $ echo ${str^^:3} TeSt

5
如何用echo打印'-e'?
我知道这echo -e不是一个普通的命令。我已经尝试过了echo '-e',echo \-e但是他们仍然无法正常工作。
8 shell  echo 

3
关于获取日期-n天日期
假设我有一个特定的日期存储在变量中date_m。我要((date_m)-25)约会 例如:我已经15/09/2014存储在变量中,21/08/2014如果我从存储在变量中的日期中减去25 ,我想返回。
8 shell  date 

2
有什么方法可以从命令输出中读取行?
我有一个预处理命令来输出文件 ./preprocess.sh > preprocessed_file 并且preprocessed_file将像这样使用 while read line do ./research.sh $line & done < preprocessed_file rm -f preprocessed_file 有什么方法可以将输出定向到while read line零件,而不是输出到preprocessed_file?我认为除了使用此temp之外,还有更好的方法preprocessed_file。

2
案例陈述之外的变量分配
在许多语言中,可以将case / switch语句的结果分配给变量,而不是在case语句中多次重复变量分配。是否可以在Bash shell中执行类似的操作? color_code=$(case "$COLOR" in (red) 1;; (yellow) 2;; (green) 3;; (blue) 4;; esac) (或者,顺便说一句,在其他任何外壳中?)

1
分发Shell脚本的正确方法
如果shell的行为可以被修改set并因此无法预测,那么分发shell脚本的最合适方法是什么? 例如,rm *.txt在set -f已运行的环境中不会按预期执行。rm *.txt在任何环境下,如何确保删除当前目录中的所有文本文件? 在总体分发外壳脚本之前,我应如何确保它们能够按预期运行?

4
用if语句awk
我正在尝试使用awk从文件进行打印,但是我的输出为空。到目前为止,这是我的代码 accountNum=$1 while read -r LINE || [[ -n $LINE ]] ; do awk -F',' '{ if($1==accountNum) { print $3.$2 } }' Accounts done < Accounts 我也尝试过这个: accountNum=$1 while read -r LINE || [[ -n $LINE ]] ; do echo $LINE | awk -F',' '{ if($1==accountNum) { print $3.$2 } …
8 shell  scripting  awk 

4
帮助的来源是什么?
help 显示有关内置命令的信息。帮助的来源是什么?它是否维护用于内置命令的数据库,还是读取每个内置命令的某些文件(类似于每个实用程序的联机帮助页)? 有时我发现它的信息似乎扩大了 --help $ cd --help bash: cd: --: invalid option cd: usage: cd [-L|[-P [-e]]] [dir] $ help cd cd: cd [-L|[-P [-e]]] [dir] Change the shell working directory. Change the current directory to DIR. The default DIR is the value of the HOME shell variable. The variable …
8 shell 

2
根据grep regex重定向输出
我gradle run用来启动REST服务器。REST服务器的输出如下所示: XXX.XXX.XX.XXX - <moreinfo> randomtext randomtext XXX.XXX.XX.XXX - <moreinfo> XXX.XXX.XX.XXX - <moreinfo> randomtext XXX.XXX.XX.XXX - <moreinfo> XXX.XXX.XX.XXX这是IP地址,randomtext是错误消息。不幸的是,所有输出都定向到stdout。 如何将以IP地址开头的所有行定向到一个名为的文件中,err.log并将其他所有行定向到all.log? 不幸的是,gradle run由于它是REST服务器,因此只能启动一次且不能停止。 也许使用tee,grep组合?

2
无法使用bc对从stdin收到的数字求和
我正在尝试使用以下方法计算文件夹中包含的文件的平均熵: { echo '('; find . -type f -exec entropy {} \; | \ grep -Eo '[0-9.]+$' | \ sed -r 's/$/+/g'; echo '0)/'; find . -type f | wc -l; } | \ tr -d '\n' | bc -l entropy 是一个可执行文件,可计算文件的香农熵,并提供以下形式的输出: $ entropy foo foo: 5.13232 前面的命令错误显示为: (standard_in) 1: …
8 bash  shell  bc 

1
这四个命令(fifo,进程替换,重定向...)之间有什么区别?
我的目标是使用nc和创建一个简单的echo服务器fifo。我并不是在寻找最好的方法,我只是想了解以下命令的语义(何时发生派生,为什么,它发生了什么变化,为什么命令表现不同...)。 我使用bash,所以我不知道如果所有的命令都将使用POSIX工作sh或zsh,ksh... 这是我在标题中提到的四个命令(假设我已经做过mkfifo fifo): cat fifo | nc -l localhost 8888 > fifo exec 3<> fifo && nc -l localhost 8888 <&3 >&3 && exec 3>&- nc -l localhost 8888 <(cat fifo) > fifo nc -l localhost 8888 < fifo > fifo 现在,我希望这4个命令可以执行相同的操作,至少最后两个命令可以执行相同的操作。 第一个命令的行为符合预期,一个简单的回显服务器在客户端关闭连接时将关闭。 行为像1。 我可以连接到服务器,发送数据,但是我什么也收不到。当我关闭客户端连接时,服务器关闭。 无法连接到服务器,服务器将永远监听。


2
将参数传递给su提供的shell
man su 说: You can use the -- argument to separate su options from the arguments supplied to the shell. man bash 说: -- A -- signals the end of options and disables further option processing. Any arguments after the -- are treated as filenames and arguments. An argument of …
8 bash  shell  su  options 

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.