我正在尝试列出、和中的所有文件dir1
,这些文件可能位于我使用该命令的子目录中的任何位置。我尝试了以下但没有成功:dir2
dir3
dir4
cwd
find
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 {} \;
没有成功。
我更喜欢使用-exec
or的解决方案xargs -print0
,即不容易出现空白问题。