Chinaunix
标题:
= =cut获取用户名跟uid一直提示找不到文件或者目录
[打印本页]
作者:
ccv709598965
时间:
2016-05-12 17:06
标题:
= =cut获取用户名跟uid一直提示找不到文件或者目录
#!/bin/bash
file=/etc/passwd
for a in $file
do
username=$a |cut -d ":" -f1
userid=$a |cut -d ":" -f3
done
请问哪里不对啊
作者:
lyhabc
时间:
2016-05-12 19:06
sed试试
作者:
287380917
时间:
2016-05-13 15:46
$file跟$a,shell不知道你要干啥·····
for a in `cat $file`
do
username=`echo $a |cut -d ":" -f1`
userid=`echo $a |cut -d ":" -f3`
done
复制代码
作者:
ccv709598965
时间:
2016-05-16 09:43
filehelper_1463362960785_95.png
(55.91 KB, 下载次数: 40)
下载附件
2016-05-16 09:43 上传
你看,运行完就这样了,我要获取passwd的用户名和UID
回复
3#
287380917
作者:
287380917
时间:
2016-05-16 10:32
回复
4#
ccv709598965
你完整的脚本发出来看看。看提示应该是你把获取的结果当成命令又执行了,所以提示command not found
作者:
lll1985911
时间:
2016-05-17 23:48
本帖最后由 lll1985911 于 2016-05-17 23:50 编辑
调试执行:
[root@localhost ~]# sh -x test.sh
+ file=/etc/passwd
+ for a in '$file'
+ username=/etc/passwd
+ cut -d : -f1
+ userid=/etc/passwd
+ cut -d : -f3
[root@localhost ~]#
复制代码
你的file=/etc/passwd这句,file这个变量引用的不是文件内容,而是文件的绝对路径。
改为如下再试试看:
#!/bin/bash
file=/etc/passwd
for a in `cat ${file}`
do
username=$a |cut -d ":" -f1
userid=$a |cut -d ":" -f3
done
复制代码
作者:
chenxians
时间:
2016-05-18 10:10
用awk就可以
awk -F ":" '{print $1,$3}' /etc/passwd
或者awk 'BEGIN{FS=":"}{print $1,$3}' /etc/passwd
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2