我正在尝试列出、和中的所有文件dir1,这些文件可能位于我使用该命令的子目录中的任何位置。我尝试了以下但没有成功:dir2dir3dir4cwdfind
find . -type f -regextype posix-egrep -regex 'dir1/.+|dir2/.+|dir3/.+|dir4/.+'
Run Code Online (Sandbox Code Playgroud)
我也试过posix-extended了。如何列出这些文件?
我想用尚未设置的变量初始化脚本顶部的一些字符串,例如:
str1='I went to ${PLACE} and saw ${EVENT}'
str2='If you do ${ACTION} you will ${RESULT}'
Run Code Online (Sandbox Code Playgroud)
然后稍后PLACE, EVENT, ACTION, 和RESULT将被设置。然后我希望能够在扩展变量的情况下打印出我的字符串。是我唯一的选择eval吗?这似乎有效:
eval "echo ${str1}"
Run Code Online (Sandbox Code Playgroud)
这是标准吗?有一个更好的方法吗?eval考虑到变量可能是任何东西,最好不要运行。
我有两个数组:
arrayA=(1 2 3)
arrayB=(a b c)
Run Code Online (Sandbox Code Playgroud)
我想使用命令行参数打印出其中一个,即没有任何if else.
我尝试了一些语法变体,但没有成功。我想做这样的事情:
ARG="$1"
echo ${array${ARG}[@]}
Run Code Online (Sandbox Code Playgroud)
但我收到了“错误替换”错误。我怎样才能做到这一点?
我想用来scp移动一些文件并覆盖目标服务器上这些文件的任何现有实例。其中一些可能是只读的,当然,这些课程scp会因“许可被拒绝”而失败。我似乎找不到;的--force类型开关scp。这可能吗?
我知道,rsync但目前在目标服务器上不可用。
我想find在每场比赛中运行一个然后执行一个脚本;但是,我想在每个exec. 我怎样才能产生以下输出:
$ find . -name 'something' -exec sh script.sh {} \;
./something_1
output from
script.sh something_1
./something_2
output from
script.sh something_2
Run Code Online (Sandbox Code Playgroud)
我目前只从script.sh. 我试过-exec echo {} && sh script.sh {} \;没有成功。
我更喜欢使用-execor的解决方案xargs -print0,即不容易出现空白问题。