如何调用需要用户一行代码的代码
How to call a code that requires a line of code from a user
我的代码只检查我的密码文件中的用户。
#!/bin/bash
ret=false
getent passwd "" >/dev/null 2>&1 && ret=true
if $ret; then
echo "yes the user exists"
else
echo "No, the user does not exist"
fi
它工作正常,您只需按名称称呼它:。 problem2.bsh(用户名)并测试用户是否在我的密码文件中。工作正常。但我想将它与其他 2 个代码一起放入一个方法中,让我可以选择调用它。
例如:
while [true]
do
case $option in
a) . problem1.bsh
;;
b) . problem2.bsh
;;
c) . problem3.bsh
;;
x) break
;;
*) echo "invalid input"
esac
done
选项 a 和 c,在调用问题 1 和 3 时工作正常,但由于某种原因问题 2 没有 return 任何东西。
无论如何让问题 2 要求用户名事先检查我的 passwd 文件然后 运行 而不是必须输入 . problem2.bsh (用户名) 供其检查。
只需将那些 problem*.bsh
文件制作成函数并使用全局变量,例如:
problem1() { echo $user ... ; }
problem2() { getent passwd "$user" ; }
problem3() { echo ... "$user" ; }
user=
while true
do printf 'option [abcx]? '
read -r
case $REPLY in
a) problem1 ;;
b) problem2 ;;
c) problem3 ;;
x) break ;;
*) echo "invalid input" ;;
esac
done
我的代码只检查我的密码文件中的用户。
#!/bin/bash
ret=false
getent passwd "" >/dev/null 2>&1 && ret=true
if $ret; then
echo "yes the user exists"
else
echo "No, the user does not exist"
fi
它工作正常,您只需按名称称呼它:。 problem2.bsh(用户名)并测试用户是否在我的密码文件中。工作正常。但我想将它与其他 2 个代码一起放入一个方法中,让我可以选择调用它。 例如:
while [true]
do
case $option in
a) . problem1.bsh
;;
b) . problem2.bsh
;;
c) . problem3.bsh
;;
x) break
;;
*) echo "invalid input"
esac
done
选项 a 和 c,在调用问题 1 和 3 时工作正常,但由于某种原因问题 2 没有 return 任何东西。 无论如何让问题 2 要求用户名事先检查我的 passwd 文件然后 运行 而不是必须输入 . problem2.bsh (用户名) 供其检查。
只需将那些 problem*.bsh
文件制作成函数并使用全局变量,例如:
problem1() { echo $user ... ; }
problem2() { getent passwd "$user" ; }
problem3() { echo ... "$user" ; }
user=
while true
do printf 'option [abcx]? '
read -r
case $REPLY in
a) problem1 ;;
b) problem2 ;;
c) problem3 ;;
x) break ;;
*) echo "invalid input" ;;
esac
done