Nig*_*k32 4 bash terminal scanf
如何从bash shell中的键盘查找用户输入?我以为这会起作用,
int b;
scanf("%d", &b);
Run Code Online (Sandbox Code Playgroud)
但它说
-bash:/Users/[name]/.bash_profile:第17行:意外令牌"%d"附近的语法错误,'
-bash:/Users/[name]/.bash_profile:line 17:`scanf("%d",&b);'
编辑
backdoor() {
printf "\nAccess backdoor Mr. Fletcher?\n\n"
read -r b
if (( b == 1 )) ; then
printf "\nAccessing backdoor...\n\n"
fi
}
Run Code Online (Sandbox Code Playgroud)
只需使用read内置:
read -r b
Run Code Online (Sandbox Code Playgroud)
不需要指定类型(按照%d),因为变量不会在shell脚本中输入,除非你跳过(不必要的)箍来制作它们; 如果你想将一个值用作十进制,那就是它被评估的上下文的问题,而不是它被读取或存储的方式.
例如:
(( b == 1 ))
Run Code Online (Sandbox Code Playgroud)
......视为$b小数,而
[[ $b = 1 ]]
Run Code Online (Sandbox Code Playgroud)
... 在b和b之间进行字符串比较"1".