4.1Linux目录结构和根文件系统全面讲解 Linux文件系统:Linux:glibc程序编译方式:动态链接静态编译进程的类型: 终端:硬件设备, 关联一个用户接口与终端相关:通过终端启动与终端无关:操作引导启动过程当中自动启动 操作系统的组成:静态:Kernel,application文件系统:层级结构FHS: Filesystem Hierachry Stanard/bin: 所有用户可用的基本命令程序文件 /sbin:供系统管理使用的工具程序 /boot:引导加载器必须用到的...
我有以下声明for i in `cat i.txt`; do wine ~/run.exe $i.asc >> out.asc; done但它继续将所有输出写入控制台而不是文件’out.asc’.你可以帮我将输出重定向到文件而不是屏幕.提前致谢!解决方法:可能是葡萄酒正在写stderr,所以你需要重定向:for i in `cat i.txt`; do wine ~/run.exe $i.asc 2>> out.asc; done注意2>中的2>操作符,这意味着stderr.
我试图从/ dev / random和/ dev / urandom中读取并想知道什么是最好的方法来读取它们和块/字符特殊设备一般使用bash shell脚本?解决方法:使用dd从设备获取数据块.例如.从/ dev / urandom获取8个字节:dd if=/dev/urandom count=1 bs=8 | ...然后,您可以使用od将字节转换为人类可读的形式:$dd if=/dev/urandom count=1 bs=8 2>/dev/null | od -t x1 -A n b4 bc 2f 59 dd 55 1b 4a顺便说一句,如果你只需要bash中的随机数,$RANDOM可...
冒号命令是空命令. :构造在变量的条件设置中也很有用.例如,: ${var:=value}如果没有:,shell会尝试将$var作为命令进行评估. < = ??? 我不太明白上述陈述中的最后一句话.谁能给我一些细节? 谢谢解决方法:尝试var=badcommand $var你会得到bash: badcommand: command not found尝试var= ${var:=badcommand}你会得到同样的. shell(例如bash)总是尝试在每个命令行上运行第一个单词作为命令,即使在进行变量扩展之后也是如此. 唯一的例...
我有一个我为自己编写的脚本,它使用vlc到某个地方结束,我需要它停止输出它想要的东西,但保留我自己的输出(所以没有“清除”). 我使用了参数:“ – q”和“–no-sout-x264-quiet”但无效,它仍然输出丑陋的消息,即:“警告:调用rand()”和“阻止:.. .“和”Gtk-WARNING ** …“ 我尝试重定向’vlc …> err.log’,它没有帮助…… (编辑[忘记添加]:重定向’>’不起作用,文件为空) 我在vlc -H搜索但是它的大量并且有> 20“安静”的...
我有以下脚本(从外部服务获取我当前的IP):#!/bin/bash #################################################################### # Gets the public IP address of current server ####################################################################cmd='curl -s' #cmd='wget -q -O' #cmd='lynx -dump'ipservice=checkip.dyndns.orgpipecmd="sed -e 's/.*Current IP Address: //' -e 's/<.*\$//'"# Run command echo $($cmd $...
我需要从JSON编码文件中提取变量并将其分配给Bash中的变量. 摘录…来自file.json"VariableA": "VariableA data", "VariableB": ["VariableB1", "VariableB2", "VariableB3", "VariableB3"], 我已经到了这个地方variableA=$(fgrep -m 1 "VariableA" file.json )但它返回整行.我只想要数据 对于VariableB,我需要用逗号分隔的值替换列表. 我看过awk,sed,grep,regexpressions并且确实给出了学习曲线……需要知道使用哪一个,或者更好的解...
我想测试两个变量是否存在,在我使用“read”创建它之后.如果用户只输入我想要的两个变量之一,则会显示错误. 有我的代码:while true; doecho "Saisissez deux variables x et y sous la forme [x y]"read x yif [ !-e $x ] || [ !-e $y ] <<<<<< problem lignethenecho "Vous devez renseigner deux nombres x et y"elif [ $x = "." ]thenexit 0elsecalcul $x $yfi done当我输入一个参数时出现错误:[: !-e: unary operator expect...
我知道bash函数$RANDOM会在一个范围内生成随机整数,但是,这些数字应该遵循(或近似)一个统一的离散分布吗?解决方法:我只打印了$RANDOM一百万次,把它变成直方图,并用gnumeric查看它,图表显示了非常正态的分布!for n in `seq 1 1000000`; do echo $RANDOM ; done > random.txt gawk '{b=int($1/100);a[b]++};END{for (n in a) {print n","a[n]}}' random.txt > hist.csv gnumeric hist.csv因此,如果您想要近似线性分布,请使用$(($RA...
编写一个bash脚本,它将从用户读取10个整数,并将输出附加到文件’XYZ’.您不能在脚本中多次使用“读取”语句.#! /bin/bashfor i in {0,1,2,3,4,5,6,7,8,9} doread "i"echo "0,1,2,3,4,5,6,7,8,9" >> XYZ done我是学生,只是为了学习这个,我觉得很难,你能给我一些建议吗?我认为这应该有很多问题.非常感谢你.解决方法:让我们看看你已经拥有的东西.你的for循环执行10次迭代的read命令,read只在脚本中出现一次.您还可以将输出(&??gt;>)附...
如何将awk变量传递给在awk中运行的bash命令? 我正在使用awk计算每个特定进程的线程运行总和,但后来我想使用每个pid来访问/ proc / $pid文件系统. 下面标记为断开的行不正确,因为$pid不存在. 如何将awk变量pid导出到shell命令我运行awk? (为了便于阅读,添加了换行符)$ps -ALf | grep $PROC | grep -v grep | \ # get each pidawk '{threads[$2]+=1} END \ # count num threads per pid{ for...
比方说,只有当前时间是从上午11点10分到下午2点30分才能运行“命令”.如何在bash脚本中完成此操作? 下面用伪语言写的东西:#!/bin/bash while(1) {if ((currentTime > 11:10am) && (currentTime <2:30pm)) {run command;sleep 10;} }解决方法:其他答案忽略了当一个数字从0开始时,Bash将在基数8?中解释它.因此,例如,当它是上午9点时,日期’%H%M’将返回0900,这是Bash中的无效数字. (不再). 一个适当而安全的解决方案,使用现代Bas...
我在一个目录中有100个文件,并希望通过几个步骤处理每个文件,而step1非常耗时.所以伪代码就像:for filename in ~/dir/*; dorun_step1 filename >${filename}.out & donefor outfile in ~/dir/*.out; dorun_step2 outfile >${outfile}.result done我的问题是如何检查给定输入文件的step1是否完整.我以前在C#中使用threads.join,但不确定bash shell是否具有等价物.解决方法:试试这个:declare -a PROCNUMS ITERATOR=0 for filename ...
所以我试图在bash脚本中执行if else if else语句.截至目前,当我运行此脚本时,我收到以下错误消息“./groupJobs.sh:line 76:意外令牌elif附近的语法错误”./groupJobs.sh:第76行:elif [$jobsize -lt $2];然后’” 我已经在线查看了多个示例,看不出我所做的和其他人说的有什么不同. 任何帮助,将不胜感激.(第76行是最后一个elif语句)if [ $filesize -ge $2 ]; then #goes this way if file is to big to put in a job with anyother...
这可能看起来很微不足道,但我是bash脚本的新手,我在其他地方找不到答案. 我在ubuntu 13.04上安装了mplayer,我用它来流媒体网络电台.通常你需要提供ip作为参数:mplayer http://176.31.113.37:8080我在root .bash_aliases中创建了一个别名文件,其中包含以下内容:export SOMA="http://173.239.76.147:8090" export FRESH="http://176.31.113.37:8080"现在我只能使用电台名称来播放收音机:mplayer $FRESH.我想知道是否有可能摆脱$符...