[英]BASH for loop to test list for username
对于此特定问题,我需要编写一个脚本来检查列表是否存在,检查该列表以查看是否存在通过命令行指定的用户名,如果不存在,则将其追加到列表中。 我已经看到类似的问题,但还没有找到专门使用for循环的问题。 我刚开始学习BASH,所以任何帮助或朝正确方向的推动都将大有帮助。 这是我到目前为止(语法错误)
#! /bin/bash
user=$1
if [ list.txt -f ]; then
echo "The list does not exist"
for v in $(cat list.txt)
do
if [ $v -eq $user ]; then
echo "That username already exists!"
elif
echo $user >> list.txt ; then
else echo "That file does not exist"
fi
这是您的代码的另一种方法:
#!/bin/bash
user=$1
if [ ! -f "list.txt" ]; then
echo "The list does not exist."
else
for v in $(cat list.txt)
do
# user found
if [ "$v" = "$user" ]; then
echo "That username already exists!"
exit $?
fi
done
fi
# user not found
echo $user >> "list.txt"
关于Bash的注意事项:
=
运算符( 请参见此列表 )。 " "
)(如果文件名带有空格等,则不是一个坏主意) elif
需要有一个条件( 请参阅此页面并搜索elif
)。 希望这有所帮助; 知道Bash会非常有用!
循环适用于无所事事的人。
if [ -f list.txt ] && grep -q -x -F "$user" list.txt
then
echo "Username exists"
else
echo "$user" >> list.txt
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.