我在计算机 1 中生成了密钥对。
并将公钥移动到Computer2(服务器)并使其在authorized_keys中。
并将私钥移动到 Computer3(client) 并用于ssh-add
添加它。
为什么我可以直接登录服务器而不提供公钥?ssh 密钥授权的真正工作流程是什么?
在脚本.sh中:
#!/bin/bash
func(){
echo "I am here a func."
}
export -f func
export variable="I am here a variable"
sudo -E bash -c "func ; echo $variable"
Run Code Online (Sandbox Code Playgroud)
输出如下:
bash: func: command not found
I am here a variable
Run Code Online (Sandbox Code Playgroud)
其实我知道一个方法,比如:
#!/bin/bash
func(){
echo "I am here a func."
}
FUNC=$(declare -f func)
export variable="I am here a variable"
sudo -E bash -c "$FUNC; func ; echo $variable"
Run Code Online (Sandbox Code Playgroud)
但我觉得它太重了,因为我必须用这种方式注册每个函数。
我正在阅读 zsh 的手册,我知道我可以通过以下方式将整数值分配给参数:
(( val = 1 ))
Run Code Online (Sandbox Code Playgroud)
如果我正在调用一个脚本,而我的第一个参数是一个整数,如./scirpt.zsh $((val))
,我如何在我的脚本中引用它来执行一些算术过程,如重新分配、比较等?我希望代码如下:
#!/bin/zsh
(( {1} = $1++ ))
Run Code Online (Sandbox Code Playgroud)