我试图运行一个程序,我的每个脚本的参数都作为stdin上的不同行传递。我目前的尝试涉及使用for
循环,如下所示:
#!/bin/bash
[My Program] <<EOF
for i in "$@"
do
$i
done
EOF
这不起作用 - 程序实际上接收for i in
作为其输入的一部分,而不是自己给出参数列表。如何将其更改为功能?
答案 0 :(得分:0)
为程序的stdin提供一个新行分隔的命令行参数列表,用于调用脚本:
#!/bin/sh
./your-program <<EOF
$(printf '%s\n' "$@")
EOF
...或者,与POSIX sh兼容的heredoc语法:
for
如果由于某种原因你确实想要使用#!/bin/sh
./your-program <<EOF
$(for i; do
echo "$i"
done)
EOF
循环,你可以这样做:
printf
...虽然注意到echo
甚至可以替代var app = angular.module('myApp', []);
app.config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'self',
'https://www.youtube.com/**'
]);
});
app.controller('videoController', ['$scope',
function MyCtrl($scope) {
$scope.youtubevideo="https://www.youtube.com/embed/c-z9M6KZs_0";
$scope.getIframeSrc = function(src) {
return src;
};
}
]);
;要了解原因,请参阅the POSIX spec for echo
的“应用程序使用”部分。