Questions tagged «shell»

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


4
dirname和basename与参数扩展
是否有客观原因偏爱一种形式?性能,可靠性,可移植性? filename=/some/long/path/to/a_file parentdir_v1="${filename%/*}" parentdir_v2="$(dirname "$filename")" basename_v1="${filename##*/}" basename_v2="$(basename "$filename")" echo "$parentdir_v1" echo "$parentdir_v2" echo "$basename_v1" echo "$basename_v2" 产生: /some/long/path/to /some/long/path/to a_file a_file (v1使用外壳程序参数扩展,v2使用外部二进制文件。)

3
ls是否与ls -1相同?
ls返回几列的输出,而ls|cat返回与ls -1我尝试过的目录相同的字节输出。我仍然看到ls -1答案中的管道,例如ls -1|wc -l。有没有理由更喜欢ls -1?为什么...|cat更改输出ls?
19 shell  ls 

1
echo [9876543210]显示1 4 5 6…为什么?
请解释为什么最后四个echo语句显示1 4 5 6?我曾经无意中碰到了这个,但是现在我好奇为什么会发生这种行为。 这些语句按预期工作(对我而言)。 $ echo [ 9876543210 ] [ 9876543210 ] $ echo [237890] [237890] 这些echo语句始终显示1 4 5 6.这些数字是否有特殊之处? $ echo [9876543210] 1 4 5 6 $ echo [abcd9876543210ghi] 1 4 5 6 $ echo [-123456-] 1 4 5 6 $ echo [-7654321-] 1 4 5 6 谢谢! …

7
外壳/端子中的随机颜色和笑话
我看到一个人,在使用他们的终端时,它会开个玩笑并改变颜色,并嘲笑用户。自(年)以来,它一直在向控制台泄漏颜色。我不记得它是什么,但我想使用它,因为经过长时间的使用,Kubuntu Konsole变得非常无聊,并且我想让事情变得生动起来。关于什么是什么/在哪里可以得到的任何想法? 我正在寻找的是可以自动执行的操作-无需用户输入特定内容即可运行脚本或命令(甚至在启动时运行命令)。我要寻找的东西以随机的间隔改变了外壳的颜色主题,并开玩笑说颜色变化。也许这与Kubuntu中内置的Konsole只是一个不同的终端程序(我不知道这是否合适)。

4
为什么某些内置的shell`read`无法从`/ proc`文件中读取整行?
在某些类似Bourne的shell中,read内置/proc命令无法从file in读取整行(以下命令应在in中运行zsh,$=shell并$shell用其他shell 替换): $ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do printf '[%s]\n' "$shell" $=shell -c 'IFS= read x </proc/sys/fs/file-max; echo "$x"' done [bash] 602160 [dash] 6 [ksh] 602160 [mksh] 6 [yash] 6 [zsh] 6 [schily-sh] 602160 [heirloom-sh] 602160 [busybox sh] 6 read标准要求标准输入需要是一个文本文件,该要求是否引起各种行为? …
19 linux  shell  proc  read 



5
学习一个陌生系统的命令
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 您登录到一个陌生的UNIX或Linux系统(以root用户身份)。您会运行哪些命令来确定自己的方向并弄清楚自己所使用的系统是哪种?您如何确定正在使用哪种类型的硬件,正在运行哪种类型的操作系统以及有关权限和安全性的当前情况? 您键入的第一条命令和第二条命令是什么?

5
为什么在仅使用cp更容易时使用diff / patch
diff -u file1.txt file2.txt > patchfile 创建一个补丁文件,该文件包含用于patch将file1.txt转换为与file2.txt完全相同的指令 不能使用cp命令代替吗?我可以想象这对于文件太大并且必须通过网络传输的网络很有用,这种方法可能会节省带宽。还有其他方法可以使用diff / patch在其他情况下是有利的吗?
19 shell  cp  diff  patch 

3
当我通过符号链接进行cd时,为什么pwd显示符号链接而不是实际路径?
我创建了一个指向ln -s 1 2目录内test目录的软链接(cd 2),并打开了该软链接(),并使用显示了当前路径pwd。显示的路径是~/test/2和不是~/test/1。 在Windows之类的操作系统中有所不同,快捷方式将我们带到真实目录中。我有点困惑这个软链接在Linux中是如何工作的。这不是in中的捷径Windows吗?为什么路径不行~/test/1? $ mkdir test $ cd test $ mkdir 1 $ ln -s 1 2 $ cd 2 $ pwd /home/dazz/test/2

4
如何在互连的命令之间实现循环数据流?
我知道两种类型的命令如何相互连接: 通过使用管道(将std-output放入下一个命令的std-input中)。 通过使用T恤(将输出拼接成许多输出)。 我不知道这是否可能,所以我画了一个假设的连接类型: 如何在命令之间实现循环数据流,例如在此伪代码中,我使用变量而不是命令。 pseudo-code: a = 1 # start condition repeat { b = tripple(a) c = sin(b) a = c + 1 }

9
使用“ while true”来保持脚本存活是个好主意吗?
我只是从另一个世界跳到Unix,想知道是否 while true do /someperlscript.pl done perl脚本本身内部具有一个文件夹/文件监视程序,当在目标位置中更改文件时将执行该文件夹/文件监视程序。 这(while true)个好主意吗?如果不是,那么首选的可靠方法是什么? TIA 编辑:由于这似乎已经引起了一定的兴趣,这里是完整的方案。perl脚本本身使用文件监视程序监视目录。收到新文件(它们通过rsync到达)后,它将拾取新文件并进行处理。现在,传入的文件可能已损坏(不要问..来自树莓派),有时该进程可能无法对其进行处理。我不知道为什么,因为我们还不了解所有情况。 但是-如果该进程确实由于某种原因失败,我们希望它能够启动并运行并处理下一个文件,因为下一个文件与可能导致错误的上一个文件完全无关。 通常,我会使用某种形式的catch all并将所有代码包装在它周围,以免它崩溃。但是不确定perl。 据我了解,使用诸如supervisor之类的方法是一种很好的方法。
19 shell  perl 


4
如何使用eval为bash中的变量分配空格值
我想使用将值动态分配给变量eval。以下虚拟示例有效: var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange 但是,当变量值包含空格时eval,即使$var_value放在双引号之间,也会返回错误: var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command not found 有什么办法可以避免这种情况?
19 bash  shell  quoting 

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.