Questions tagged «shell»

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

3
Tar列出不完全存在的文件列表
我正在从类似的脚本中运行命令 tar -c -f ar.tar a b c d 其中b,c和d可能不存在,并且可能是目录。我想出的解决方案是将输出ls -d传递到grep,然后将其拼接到tar命令中,或者打开的扩展glob @(a|b|c|d)。 有更整齐的方法吗?我正在使用Debian Wheezy,它似乎没有--include参数。
10 shell  wildcards  tar 

3
阅读时如何处理退格键?
我如何处理输入的退格键,它显示^?是否尝试过以及如何read计算字符,因为12^?3已经有5个字符完成了(尽管它们都不是实际的输入),但是在12^?3^?返回提示后,很奇怪。请帮忙! -bash-3.2$ read -n 5 12^?3^?-bash-3.2$
10 bash  shell  line-editor  read 

3
bash中$&的用法是什么?
我正在研究bash中的特殊参数。我很好奇知道$&它是什么以及与它有什么不同$_。 运行命令时,我看到以下输出,但也找不到相应的含义。 k@Linux:~$ echo $& [1] 12397 $ k@Linux:~$ echo $n [1]+ Done echo $ k@Linux:~$
10 bash  shell 

1
了解IFS的默认值
在我的GNU bash版本4.2.8中,IFS默认具有空格,制表符和换行符的默认值: usr@T42 ~ $ echo -n "$IFS" | hexdump -C 00000000 20 09 0a | ..| 00000003 usr@T42 ~ $ 有没有使用默认IFS的理由?另外,除了bash内置之外,哪些实用程序还使用IFS read?
10 bash  shell  quoting 

3
用顺序索引替换字符串
有人可以建议一种优雅的方式来实现这一目标吗? 输入: test instant () test instant () ... test instant () //total 1000 lines 输出应为: test instant1 () test instant2 () test instant1000() 空行在我的输入文件中,并且同一目录下有很多文件需要立即处理。 我试图用它替换同一个目录中的许多文件,但没有用。 for file in ./*; do perl -i -000pe 's/instance$& . ++$n/ge' "$file"; done 错误: Substitution replacement not terminated at -e line 1. Substitution replacement …

3
获取文件的独占读/写锁定以进行原子更新
我想要一个用作计数器的文件。用户A将写入并递增该数字,而用户B请求读取文件。用户A是否可以锁定此文件,以便在用户A的写操作完成之前没有人可以对其进行读写? 我已经调查过,flock但似乎无法按我期望的那样工作。 flock -x -w 5 /dev/shm/counter.txt echo "4" > /dev/shm/counter.txt && sleep 5 如果有一种更合适的方法来获得类似于原子的增量文件,那也将很高兴听到! 我的目标是: LOCK counter.txt; write to counter.txt; 同时 Read counter.txt; realize it's locked so wait until that lock is finished.


4
查找不包含子目录的目录
我写的脚本是ksh。需要直接在当前目录下查找仅包含文件而不包含子目录的所有目录名。 我知道我可以ls -alR在第一个字段(d用于目录)中对第一个字母使用输出并对其进行递归解析。我认为这awk是解析和查找的最佳方法。 例如,ls -al当前目录中的一个简单输出: drwxr-xr-x 22 af staff 748 18 Mar 22:21 . drwxr-xr-x 5 root admin 170 17 Mar 18:03 .. -rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites …
10 shell  find  directory  ls  ksh 

4
如何在Linux中为用户分配初始密码/默认密码?
我找到了说明如何设置用户密码的指南。我正在尝试使其自动化并向用户发送电子邮件,例如: userid created with password XYZ. request to change the initial password. 根据上面的文档,需要使用Python创建加密的密码,并将其输入以下usermod命令: usermod -p "<encrypted-password>" <username> 还有其他更简单的方法吗?我不想下载任何特殊的实用程序来执行此操作;应该尽可能地概括。 编辑:甚至上面链接中给定的方法似乎不适用于我: bash-3.00# python Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5 Type "help", "copyright", "credits" or "license" for more information. >>> import crypt; print crypt.crypt("<password>","<salt>") <sOMrcxm7pCPI >>> ^D bash-3.00# useradd …

4
计算变量,并将其输出到另一个变量
我知道的唯一计算器是bc。我想添加1到一个变量,然后输出到另一个变量。 我nextnum从计数文件中的字符串得到了变量: nextnum=`grep -o stringtocount file.tpl.php | wc -w` 可以说nextnum值为1。当添加时1,它将变为2。要计算,我运行: rownum=`$nextnum+1 | bc` 但出现错误: 1+1: command not found 我只是在计算部分失败。我试过更改反引号,但仍然无法正常工作。我不知道如何计算变量并将其输出到另一个变量。

1
包装包含另一个命令的单引号和双引号的命令
我最近了解了watch,但是在使其使用相对复杂的命令时遇到了麻烦。 例如,我想要求每三秒钟watch运行zsh一次以下命令*: for x in `command_1 | grep keyword | cut -d' ' -f1`; do command_2 "word[word=number]" $x; done 如您所见,以上行包括单引号,双引号以及其他特殊字符。 所以我尝试了: watch -n 3 "for x in `my_command | grep keyword | cut -d' ' -f1`; do command2 "rusage[mem=7000]" $x; done" 但后来我得到了: 在!@#$#....中找不到x的匹配项;做完了 我尝试了其他组合,但没有成功。这是这些尝试之一: watch -n 3 "for x in …
10 shell  zsh  quoting 

2
用于生成随机数/单词序列的seq的随机版本?
前段时间,我使用了类似seq的工具将一系列伪随机生成的数字打印到stdout。您可以指定范围,种子,样本数量等等。 我只是忘记了此工具的名称。谁能帮我吗? 也许您甚至知道更高级的工具,例如,它支持不同的概率分布,甚至支持生成不同字母和长度/字符分布下的随机单词序列。

1
什么概率分布可以模拟这种竞争状况?
请看下面的命令: bash -c "echo x; cat 1" | tee 1。 我的理解是,它将分叉到新的shell,写入xstdout,写入file 1 not foundstderr,退出并将控制权返回给父进程,以及写入xstdout和1。因此,我希望最终输出为x,并且该文件1正好包含string x。 然而,这种情况并非如此。实际上,文件1通常包含的至少两个实例x,有时包含数千行x。在运行命令一万次的批处理测试中,x写入文件的s 的平均数为52.3,中位数为1。什么概率分布可以模拟这种行为?我怀疑它是有条件的几何形状,否则是统一的。
10 shell  files  pipe 

4
如何打印变量名称及其值?
有什么办法可以打印变量名称及其值? j=jjj k=kkk l=lll for i in j k l do .... done 预期输出(每个变量在单独的行上): j = jjj k = kkk l = lll 有人可以建议一种获得上述结果的方法吗?
10 bash  shell  variable 


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.