我正在寻找一种方法来获取分配给我的 shell 脚本中的变量的文件名。但是我的文件的命名格式为file-1.2.0-SNAPSHOT.txt。
这里的数字有时可能会改变,现在我如何将此文件名分配给变量。可以使用任何正则表达式吗?或grep?或找到?或文件?
我的目录由以下文件组成:
file-1.2.0-SNAPSHOT.txt
newFile-1.0.0.txt
sample.txt
Run Code Online (Sandbox Code Playgroud)
我的脚本sc.sh:
file_path="/home/user/handsOn"
var=$file_path/file-1.2.0-SNAPSHOT.txt
newLocation=/new_path
cp $var $newLocation
Run Code Online (Sandbox Code Playgroud)
现在文件版本有时会更改。我的脚本应该适用于任何版本号。
如何将匹配的文件名分配给变量?帮帮我。TIA
我有一些脚本要server-2通过 ssh from在远程服务器()上执行server-1,我必须将该输出写入名为file.logon的日志文件中server-1。
我正在尝试这个: sc.sh
echo 'testing'
cp $HOME/dir1/file1 $HOME/dir2
Run Code Online (Sandbox Code Playgroud)
现在,sc.sh通过 ssh执行:
sshpass -p 'psswd' ssh username@server-2 "bash -s" < sc.sh | tee -a file.log
if [ $? -eq 0]; then
echo "successfully executed the script file"
.
.
.
else
echo "failed copying due to incorrect path"
fi
Run Code Online (Sandbox Code Playgroud)
现在由于tee -a file.log命令,即使我在脚本文件中的命令失败,它也将始终返回 0。如何写入日志文件,并应ssh根据ssh命令退出代码检查应在命令后工作的 if 条件?