当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求问 [ "-x$1" = "-x--debug" ] 这样写的原因是什么?
帖子发表于 : 2011-03-02 10:41 
头像

注册: 2007-11-20 10:58
帖子: 137
地址: Hangzhou, China
送出感谢: 0 次
接收感谢: 0 次
1. 为什么要在前面加-x??

2. 再问一个问题:

文件名中有空格怎么处理? 比如:

for dev in $(ls -U /sys/bus/platform/devices/); do
cat /sys/bus/platform/devices/${dev}/modalias
done

如果/sys/bus/platform/devices/中又带有空格的文件名,会报错。我自己的解决方法是:

for dev in $(ls -1U /sys/bus/platform/devices/ | sed -e "s/ /@/g"); do
cat "/sys/bus/platform/devices/${dev//@/ }/modalias"
done

但是感觉着方法比较死,有没有通用点的方法?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求问 [ "-x$1" = "-x--debug" ] 这样写的原因是什么?
帖子发表于 : 2011-03-02 11:02 
头像

注册: 2008-02-15 0:09
帖子: 852
送出感谢: 0 次
接收感谢: 0 次
1,加x是防止=两边都是空值,ABS中有写:
引用:
在一个混合测试中, 即使使用引用的字符串变量也可能还不够. 如果$string为空的话, [ -n "$string" -o "$a" = "$b" ]可能会在某些版本的Bash中产生错误. 安全的做法是附加一个额外的字符给可能的空变量, [ "x$string" != x -o "x$a" = "x$b" ] ("x"字符是可以相互抵消的).


2,加双引号引用变量可以保存变量中的换行与空白.


_________________
Somebody think they are full of niubility, so they play a zhuangbility, but only reflect their shability.


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求问 [ "-x$1" = "-x--debug" ] 这样写的原因是什么?
帖子发表于 : 2011-03-02 12:00 
头像

注册: 2007-11-20 10:58
帖子: 137
地址: Hangzhou, China
送出感谢: 0 次
接收感谢: 0 次
ebok 写道:
1,加x是防止=两边都是空值,ABS中有写:
引用:
在一个混合测试中, 即使使用引用的字符串变量也可能还不够. 如果$string为空的话, [ -n "$string" -o "$a" = "$b" ]可能会在某些版本的Bash中产生错误. 安全的做法是附加一个额外的字符给可能的空变量, [ "x$string" != x -o "x$a" = "x$b" ] ("x"字符是可以相互抵消的).


2,加双引号引用变量可以保存变量中的换行与空白.


第一个回答很详细,谢谢。

第二个回答感觉没到点上呃, 对于加双引号可以保存空白这点我知道,但是要怎么改呢?比如:

for dev in $(ls -U /sys/bus/platform/devices/); do、
cat /sys/bus/platform/devices/${dev}/modalias
done

我的电脑上/sys/bus/platform/devices/目录有以下几个文件:
eisa.0
Fixed MDIO bus.0
i8042
pcspkr
serial8250

按照原先的方法,在循环中dev依次取得eisa.0, Fixed, MDIO, bus.0, i8042, pcspkr, serial82580这几个值,即把Fixed MDIO bus.0这个文件被拆开了。

那有办法不让他拆开吗?在哪改呢?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求问 [ "-x$1" = "-x--debug" ] 这样写的原因是什么?
帖子发表于 : 2011-03-02 12:42 
头像

注册: 2008-02-15 0:09
帖子: 852
送出感谢: 0 次
接收感谢: 0 次
cd /sys/bus/platform/devices/

for dev in *

不会发生文件名分割


_________________
Somebody think they are full of niubility, so they play a zhuangbility, but only reflect their shability.


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求问 [ "-x$1" = "-x--debug" ] 这样写的原因是什么?
帖子发表于 : 2011-03-02 13:00 
头像

注册: 2006-10-25 18:08
帖子: 1582
送出感谢: 0 次
接收感谢: 0 次
适用while循环


_________________
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求问 [ "-x$1" = "-x--debug" ] 这样写的原因是什么?
帖子发表于 : 2011-03-02 14:14 
头像

注册: 2007-11-20 10:58
帖子: 137
地址: Hangzhou, China
送出感谢: 0 次
接收感谢: 0 次
ebok 写道:
cd /sys/bus/platform/devices/

for dev in *

不会发生文件名分割


3x

代码:
#!/bin/bash

cd /sys/bus/platform/devices/

for dev in *; do
    cat "/sys/bus/platform/devices/${dev}/modalias"
done


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译