Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

2
>>重定向是什么 做?
什么时候应该>|用于将输出重定向到文件而不是>? 当我看到这时,给出的解释是它可以确保首先截断目标文件。但是我认为>已经暗示了这一点。 是否>|有用?

4
Bash:交互式远程提示
我有一个脚本可以连接到远程服务器,并检查是否安装了某些软件包: ssh root@server 'bash -s' < myscript.sh myscript.sh: OUT=`rpm -qa | grep ntpdate` if [ "$OUT" != "" ] ; then echo "ntpdate already installed" else yum install $1 fi 这个例子可以简化。这是myscript2.sh同样的问题: read -p "Package is not installed. Do you want to install it (y/n)?" choise 我的问题是bash无法以交互方式读取我的答案。 有没有一种方法可以远程执行本地脚本而不丢失提示用户的能力?
16 bash  shell-script  ssh  stdin  read 

3
在Linux中等待命令使用?
#!/bin/bash function back() { sleep $1 exit $2 } back $1 $2 & b=$! if `wait $!`;then echo success else echo failure fi bash-3.00# ./back 300 0 failure bash-3.00# ./back 300 1 failure success当我发送0时,我原以为退出状态,但是我仍在failure。 另外,wait请勿等待300秒。相反,我立即收到消息。我认为这$!是$$我脚本中的直接子代。是不是 是否可以捕获wait like的退出状态exit_status=$(wait $!)? if ! ((exit_status));then echo sucess else failure fi




6
在bash脚本(.bashrc等)中检测X会话
最近我放到xset b off了我的.bashrc。现在,当我通过tty或ssh登录(即在X会话外部)登录时弹出的错误让我很烦。 我想到的第一件事是[[ -z "$SOME_VAR" ]] && xset b off(嗯,事实证明,设置测试变量与清空测试变量是一个不同的问题)。但是哪个SOME_VAR是正确的呢? 因此,我将tty的set输出和urxvt的set输出进行了比较,以查看X中设置了哪些变量而tty中缺少了哪些变量。如预期的那样,存在很多差异(仅列出那些与我相关的差异): DESKTOP_SESSION DISPLAY GDMSESSION SESSION_MANAGER WINDOWID WINDOWPATH XAUTHORITY XDG_SESSION_COOKIE XDG_CONFIG_DIRS XDG_DATA_DIRS XDG_MENU_PREFIX 为了检测我是否在X会话中,哪个是最正确,最通用的测试?可以在尽可能多的发行版,平台和桌面环境中工作的东西吗? 还是有比测试环境变量更好的方法?

3
实际用于移动文件描述符
根据bash手册页: 重定向运算符 [n]<&digit- 将文件描述符移动digit到文件描述符n,如果n未指定,则将标准输入(文件描述符0)移动 到文件描述符。digit复制到后关闭n。 将文件描述符“移动”到另一个文件描述符是什么意思?这种做法的典型情况是什么?

4
避免由于星号未扩展而导致的错误
在bash中,我经常使用如下的for循环 for file in *.type; do sommecommand "$file"; done; 对所有匹配的文件执行操作*.type。如果在工作目录中找不到以此结尾的文件,星号不会展开,通常我会收到一条错误消息,提示somecommand找不到该文件。我可以立即想到几种避免此错误的方法。但是添加一个条件似乎并不十分优雅。有没有一个简短的方法来实现这一目标?
16 bash  wildcards  for 

5
如何在SSH登录时修复bash或自动运行/ bin / bash
当root在我的服务器上登录时,一切正常,但是当我登录时,myusername由于bash无法正常工作。 该行开始于: $ 代替 myusername@myserver:~$ 并且所有特殊键(如箭头键,Tab键等)将不起作用。 键入时,bin/bash它可以再次使用,但是我想解决问题或bin/bash在登录时自动运行。我怎样才能解决这个问题?
16 ssh  bash 

1
使用rsync输出的“对话框”制作进度条
我正在寻找一种过滤/重定向rsync输出的方式,可以将其输入到“ dialog --gauge”命令中,以便在文件同步过程中获得一个漂亮的进度条。目前,我仅在提示符下直接对其进行了测试,但我计划在(bash)shell脚本中进行此操作。 我环顾了互联网,发现了点点滴滴,但我仍然缺少使它正常工作的东西 (免责声明:这可能是完全错误的方法,并且是重定向/管道怪诞) 我目前汇总的内容: rsync -avz --progress -e "ssh" user@server:/home/user/data/ /home/user/data | awk -f /home/user/rsync.awk | sed 's/\([0-9]*\).*/\1/' | dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70 首先,我有一个带有--progress选项的实际rsync命令。rsync的输出通过管道传递到awk中,并使用以下awk过滤器: { if (index($0, "to-check=") > 0) { split($0, pieces, "to-check=") split(pieces[2], term, ")"); split(term[1], division, …
16 linux  bash  scripting  awk  rsync 

4
文件(或目录)名称中的分隔符的良好样式/做法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我不确定这是否是在此处发布的“正确”问题。我可能要问的是有关“意见”的更多信息,而不是实际的分类答案(那些有用或无效的答案,仅此而已)。 我想知道什么名称分隔符将同时对Linux最友好(或更具体地说,对Bash友好)和对人类友好。 假设我要创建一个目录,其中包含与Foo Bar先生相关的内容(Foo是名字,Bar是姓氏) 使用名称“ Foo-Bar/”非常方便。-是一个“常规”字符,不需要转义,它清楚地表明了这一点,Foo并且Bar是两个独立的东西……很好。 现在,“ Foo.Bar”有点棘手。可能有人认为这Foo.Bar实际上是一个文件(乍一看,特别是如果您没有启用着色功能的终端),其中“ Foo”是文件名,“ Bar”是扩展名。 我也可以使用“ Foo Bar”,但是当我要访问目录时,我需要转义空格,如果要列出父目录的内容(Foo Bar位于该位置)并将所述列表放在bash数组中,空白会引起麻烦(很多)。不是很好。 括号()也引起很多问题。还需要将它们转义,然后给命令造成麻烦,例如scp...不好。 所以...问题(最后)是:如果您一眼就想使文件名清晰且有意义,并且需要使用分隔符,那么您将使用什么呢?
16 linux  bash  filenames 

4
在echo命令中更改字体
是否可以在zsh或bash中更改echo输出的字体属性? 我想要的是类似于: echo -n "This is the font: normal " echo -n $font=italic "italic," echo -n $font=bold "bold," echo -n "and" echo -n $font=small "small". 以便在一行文本中显示 “这是字体:normal,italic,粗体,small ”。
16 bash  shell  zsh  fonts 


3
Bash脚本和大文件(错误):使用重定向内置的读取内容输入会产生意外结果
我对大文件和文件有一个奇怪的问题bash。这是上下文: 我有一个大文件:75G和400,000,000+行(这是一个日志文件,我不好,我让它增长了)。 每行的前10个字符是格式为YYYY-MM-DD的时间戳。 我想分割该文件:每天一个文件。 我尝试了以下无效的脚本。 我的问题是此脚本无法运行,而不是替代解决方案。 while read line; do new_file=${line:0:10}_file.log echo "$line" >> $new_file done < file.log 调试后,我在new_file变量中发现了问题。该脚本: while read line; do new_file=${line:0:10}_file.log echo $new_file done < file.log | uniq -c 给出结果如下(我把xes用来保持数据机密,其他字符是真实的)。请注意dh和较短的字符串: ... 27402 2011-xx-x4 27262 2011-xx-x5 22514 2011-xx-x6 17908 2011-xx-x7 ... 3227382 2011-xx-x9 4474604 2011-xx-x0 1557680 2011-xx-x1 1 …
16 bash 

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.